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

bcachefs: Fix lost transaction restart error

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

+6 -4
+6 -4
fs/bcachefs/alloc_foreground.c
··· 1356 1356 1357 1357 /* Don't retry from all devices if we're out of open buckets: */ 1358 1358 if (bch2_err_matches(ret, BCH_ERR_open_buckets_empty)) { 1359 - int ret = open_bucket_add_buckets(trans, &ptrs, wp, devs_have, 1359 + int ret2 = open_bucket_add_buckets(trans, &ptrs, wp, devs_have, 1360 1360 target, erasure_code, 1361 1361 nr_replicas, &nr_effective, 1362 1362 &have_cache, watermark, 1363 1363 flags, cl); 1364 - if (!ret || 1365 - bch2_err_matches(ret, BCH_ERR_transaction_restart) || 1366 - bch2_err_matches(ret, BCH_ERR_open_buckets_empty)) 1364 + if (!ret2 || 1365 + bch2_err_matches(ret2, BCH_ERR_transaction_restart) || 1366 + bch2_err_matches(ret2, BCH_ERR_open_buckets_empty)) { 1367 + ret = ret2; 1367 1368 goto alloc_done; 1369 + } 1368 1370 } 1369 1371 1370 1372 /*