summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsbruno <sbruno@FreeBSD.org>2012-07-11 18:16:54 +0000
committersbruno <sbruno@FreeBSD.org>2012-07-11 18:16:54 +0000
commit1a3cf86d419fc363964687f6229d81927a36ef69 (patch)
treee589aa1a0a77c6451d2603f5a9d80ff89b94e3b6
parentc72304b145d41338bd04103bd7e56b101261ca88 (diff)
downloadFreeBSD-src-1a3cf86d419fc363964687f6229d81927a36ef69.zip
FreeBSD-src-1a3cf86d419fc363964687f6229d81927a36ef69.tar.gz
When an MFI command fails, the driver needs to set bio->bio_resid so that
the upper levels notice. Otherwise we see commands silently failing leading to data corruption. This mirrors dadone() Submitted by: Andrew Boyer aboyer@averesystems.com Reviewed by: scottl@freebsd.org MFC after: 2 weeks
-rw-r--r--sys/dev/mfi/mfi_disk.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/mfi/mfi_disk.c b/sys/dev/mfi/mfi_disk.c
index fc43e67..18ceb99 100644
--- a/sys/dev/mfi/mfi_disk.c
+++ b/sys/dev/mfi/mfi_disk.c
@@ -298,6 +298,7 @@ mfi_disk_complete(struct bio *bio)
hdr = bio->bio_driver1;
if (bio->bio_flags & BIO_ERROR) {
+ bio->bio_resid = bio->bio_bcount;
if (bio->bio_error == 0)
bio->bio_error = EIO;
disk_err(bio, "hard error", -1, 1);
OpenPOWER on IntegriCloud