Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'bcachefs-2024-06-05' of https://evilpiepirate.org/git/bcachefs

Pull bcachefs fixes from Kent Overstreet:
"Just a few small fixes"

* tag 'bcachefs-2024-06-05' of https://evilpiepirate.org/git/bcachefs:
bcachefs: Fix trans->locked assert
bcachefs: Rereplicate now moves data off of durability=0 devices
bcachefs: Fix GFP_KERNEL allocation in break_cycle()

+16 -1
+1
fs/bcachefs/btree_locking.c
··· 215 215 216 216 if (unlikely(!best)) { 217 217 struct printbuf buf = PRINTBUF; 218 + buf.atomic++; 218 219 219 220 prt_printf(&buf, bch2_fmt(g->g->trans->c, "cycle of nofail locks")); 220 221
+15 -1
fs/bcachefs/move.c
··· 547 547 ctxt->stats->pos = BBPOS(btree_id, start); 548 548 } 549 549 550 + bch2_trans_begin(trans); 550 551 bch2_trans_iter_init(trans, &iter, btree_id, start, 551 552 BTREE_ITER_prefetch| 552 553 BTREE_ITER_all_snapshots); ··· 921 920 ? c->opts.metadata_replicas 922 921 : io_opts->data_replicas; 923 922 924 - if (!nr_good || nr_good >= replicas) 923 + rcu_read_lock(); 924 + struct bkey_ptrs_c ptrs = bch2_bkey_ptrs_c(k); 925 + unsigned i = 0; 926 + bkey_for_each_ptr(ptrs, ptr) { 927 + struct bch_dev *ca = bch2_dev_rcu(c, ptr->dev); 928 + if (!ptr->cached && 929 + (!ca || !ca->mi.durability)) 930 + data_opts->kill_ptrs |= BIT(i); 931 + i++; 932 + } 933 + rcu_read_unlock(); 934 + 935 + if (!data_opts->kill_ptrs && 936 + (!nr_good || nr_good >= replicas)) 925 937 return false; 926 938 927 939 data_opts->target = 0;