diff options
author | sbruno <sbruno@FreeBSD.org> | 2012-07-18 18:10:27 +0000 |
---|---|---|
committer | sbruno <sbruno@FreeBSD.org> | 2012-07-18 18:10:27 +0000 |
commit | 58e28bb84cf11b37bc30d99e24c35d166a5fe23d (patch) | |
tree | 11de2147de4f87f3659cfaf4b0e03602825af161 /sys | |
parent | c9ba4f7b25ec65c1aba9ca25cfd5978e43d00fba (diff) | |
download | FreeBSD-src-58e28bb84cf11b37bc30d99e24c35d166a5fe23d.zip FreeBSD-src-58e28bb84cf11b37bc30d99e24c35d166a5fe23d.tar.gz |
On BIO_ERROR, set bio_resid to stop losing data in the error case.
Submitted by: Mark Johnston <markjdb@gmail.com>
Reviewed by: scottl@freebsd.org
MFC after: 2 weeks
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/aac/aac_disk.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/aac/aac_disk.c b/sys/dev/aac/aac_disk.c index e4042f7..f2f6636 100644 --- a/sys/dev/aac/aac_disk.c +++ b/sys/dev/aac/aac_disk.c @@ -334,8 +334,10 @@ aac_biodone(struct bio *bp) { fwprintf(NULL, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, ""); - if (bp->bio_flags & BIO_ERROR) + if (bp->bio_flags & BIO_ERROR) { + bp->bio_resid = bp->bio_bcount; disk_err(bp, "hard error", -1, 1); + } biodone(bp); } |