summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2009-01-12 17:18:58 +0000
committerobrien <obrien@FreeBSD.org>2009-01-12 17:18:58 +0000
commitdd5e3d11d078202efe4e6fda2ddde9c74e8dd919 (patch)
tree16bddecfca7c4e55ed82915d06ebbcf461a1db85 /sys/dev/ata
parentfc7deb78dc866a8e9005400575e1cc2c8c4df2cd (diff)
downloadFreeBSD-src-dd5e3d11d078202efe4e6fda2ddde9c74e8dd919.zip
FreeBSD-src-dd5e3d11d078202efe4e6fda2ddde9c74e8dd919.tar.gz
Fix issue where ata_atapicmd() can never really return EBUSY which is
expected in acd_fixate(). This should fix various problems folks are having with 'burncd' reporting "burncd: ioctl(CDRIOCFIXATE): Input/output error" during the fixate phase when "fixate" is issued together with the "data" command. PR: 95979 Submitted by: Jaakko Heinonen <jh@saunalahti.fi>
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/ata-queue.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-queue.c b/sys/dev/ata/ata-queue.c
index c8ae79dc..7085460 100644
--- a/sys/dev/ata/ata-queue.c
+++ b/sys/dev/ata/ata-queue.c
@@ -434,7 +434,8 @@ ata_completed(void *context, int dummy)
printf("\n");
}
- if ((request->u.atapi.sense.key & ATA_SENSE_KEY_MASK ?
+ if (!request->result &&
+ (request->u.atapi.sense.key & ATA_SENSE_KEY_MASK ?
request->u.atapi.sense.key & ATA_SENSE_KEY_MASK :
request->error))
request->result = EIO;
OpenPOWER on IntegriCloud