From fbc519ab2e3e8cfb7d9a660fa319d9c44bdd937e Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 21 Oct 2019 19:58:06 -0400 Subject: [PATCH] bcachefs: Don't submit bio in write path under lock Signed-off-by: Kent Overstreet --- fs/bcachefs/io.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c index d6d777bb53da..6d416f71f055 100644 --- a/fs/bcachefs/io.c +++ b/fs/bcachefs/io.c @@ -1008,6 +1008,8 @@ do_write: bkey_start_pos(&key_to_write->k), total_input >> 9); + bch2_alloc_sectors_done(c, wp); + dst->bi_end_io = bch2_write_endio; dst->bi_private = &op->cl; dst->bi_opf = REQ_OP_WRITE; @@ -1022,6 +1024,8 @@ csum_err: "rewriting existing data (memory corruption?)"); ret = -EIO; err: + bch2_alloc_sectors_done(c, wp); + if (to_wbio(dst)->bounce) bch2_bio_free_pages_pool(c, dst); if (to_wbio(dst)->put_bio) @@ -1072,10 +1076,9 @@ again: goto flush_io; } - ret = bch2_write_extent(op, wp); - bch2_open_bucket_get(c, wp, &op->open_buckets); - bch2_alloc_sectors_done(c, wp); + + ret = bch2_write_extent(op, wp); if (ret < 0) goto err; -- 2.25.1