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:
Mikulas Patocka 2026-09-30 21:38:25 +02:00
parent a279804752
commit 78a6afc299

View File

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