From 91ecd41b7f02b95279dddcb2193af454efd39497 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Tue, 13 Jun 2023 15:12:04 -0400 Subject: bcachefs: bch2_extent_ptr_desired_durability() This adds a new helper for getting a pointer's durability irrespective of the device state, and uses it in the the data update path. This fixes a bug where we do a data update but request 0 replicas to be allocated, because the replica being rewritten is on a device marked as failed. Signed-off-by: Kent Overstreet --- fs/bcachefs/data_update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'fs/bcachefs/data_update.c') diff --git a/fs/bcachefs/data_update.c b/fs/bcachefs/data_update.c index c89ee14f8b6b..9f7a30c7ad36 100644 --- a/fs/bcachefs/data_update.c +++ b/fs/bcachefs/data_update.c @@ -474,7 +474,7 @@ int bch2_data_update_init(struct btree_trans *trans, if (crc_is_compressed(p.crc)) reserve_sectors += k.k->size; - m->op.nr_replicas += bch2_extent_ptr_durability(c, &p); + m->op.nr_replicas += bch2_extent_ptr_desired_durability(c, &p); } else if (!p.ptr.cached) { bch2_dev_list_add_dev(&m->op.devs_have, p.ptr.dev); } -- cgit v1.2.3