diff options
author | obrien <obrien@FreeBSD.org> | 2009-01-12 17:18:58 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2009-01-12 17:18:58 +0000 |
commit | dd5e3d11d078202efe4e6fda2ddde9c74e8dd919 (patch) | |
tree | 16bddecfca7c4e55ed82915d06ebbcf461a1db85 /sys/dev/ata | |
parent | fc7deb78dc866a8e9005400575e1cc2c8c4df2cd (diff) | |
download | FreeBSD-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.c | 3 |
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; |