From b3fce09cd33271d8dcdd3b18527d106558e30728 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Tue, 13 Aug 2019 03:16:52 -0400 Subject: [PATCH] bcachefs: Mark space as unallocated on write failure Signed-off-by: Kent Overstreet --- fs/bcachefs/fs-io.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c index 913e26487efb1..91a34ca5e4e1a 100644 --- a/fs/bcachefs/fs-io.c +++ b/fs/bcachefs/fs-io.c @@ -1219,11 +1219,20 @@ static void bch2_writepage_io_done(struct closure *cl) struct bio *bio = &io->op.op.wbio.bio; struct bvec_iter_all iter; struct bio_vec *bvec; + unsigned i; if (io->op.op.error) { bio_for_each_segment_all(bvec, bio, iter) { + struct bch_page_state *s; + SetPageError(bvec->bv_page); mapping_set_error(bvec->bv_page->mapping, -EIO); + + lock_page(bvec->bv_page); + s = bch2_page_state(bvec->bv_page); + for (i = 0; i < PAGE_SECTORS; i++) + s->s[i].nr_replicas = 0; + unlock_page(bvec->bv_page); } } -- 2.30.2