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
This commit is contained in:
Sean Bruno 2012-07-11 18:16:54 +00:00
parent a83760ee77
commit dfcbfdbb90

View File

@ -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);