mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
dm-writecache: report I/O error if flush failed
There was a bug that if writecache_flush fails due to I/O error, the
error is not reported in the FUA bio. This commit fixes it.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Assisted-by: opencode:big-pickle
Cc: stable@vger.kernel.org
Fixes: 48debafe4f ("dm: add writecache target")
This commit is contained in:
parent
a279804752
commit
78a6afc299
|
|
@ -1494,10 +1494,13 @@ static enum wc_map_op writecache_map_write(struct dm_writecache *wc, struct bio
|
|||
}
|
||||
} while (bio->bi_iter.bi_size);
|
||||
|
||||
if (unlikely(bio->bi_opf & REQ_FUA || wc->uncommitted_blocks >= wc->autocommit_blocks))
|
||||
if (unlikely(bio->bi_opf & REQ_FUA || wc->uncommitted_blocks >= wc->autocommit_blocks)) {
|
||||
writecache_flush(wc);
|
||||
else
|
||||
if (writecache_has_error(wc))
|
||||
bio->bi_status = BLK_STS_IOERR;
|
||||
} else {
|
||||
writecache_schedule_autocommit(wc);
|
||||
}
|
||||
|
||||
return WC_MAP_SUBMIT;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user