diff options
author | sbruno <sbruno@FreeBSD.org> | 2012-07-11 18:16:54 +0000 |
---|---|---|
committer | sbruno <sbruno@FreeBSD.org> | 2012-07-11 18:16:54 +0000 |
commit | 1a3cf86d419fc363964687f6229d81927a36ef69 (patch) | |
tree | e589aa1a0a77c6451d2603f5a9d80ff89b94e3b6 | |
parent | c72304b145d41338bd04103bd7e56b101261ca88 (diff) | |
download | FreeBSD-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.c | 1 |
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); |