diff options
| author | Ingo Molnar <[email protected]> | 2024-01-08 11:57:28 +0000 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2024-01-08 11:57:28 +0000 |
| commit | cdb3033e191fd03da2d7da23b9cd448dfa180a8e (patch) | |
| tree | e863d55e63bea2bc9c18652e0d7291fec5e5cd23 /fs/bcachefs/alloc_foreground.c | |
| parent | sched/fair: Remove unused 'next_buddy_marked' local variable in check_preempt... (diff) | |
| parent | sched/fair: Fix tg->load when offlining a CPU (diff) | |
| download | kernel-cdb3033e191fd03da2d7da23b9cd448dfa180a8e.tar.gz kernel-cdb3033e191fd03da2d7da23b9cd448dfa180a8e.zip | |
Merge branch 'sched/urgent' into sched/core, to pick up pending v6.7 fixes for the v6.8 merge window
This fix didn't make it upstream in time, pick it up
for the v6.8 merge window.
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'fs/bcachefs/alloc_foreground.c')
| -rw-r--r-- | fs/bcachefs/alloc_foreground.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/bcachefs/alloc_foreground.c b/fs/bcachefs/alloc_foreground.c index 1ba0eeb7552a..0e6157982607 100644 --- a/fs/bcachefs/alloc_foreground.c +++ b/fs/bcachefs/alloc_foreground.c @@ -1374,8 +1374,17 @@ retry: goto alloc_done; /* Don't retry from all devices if we're out of open buckets: */ - if (bch2_err_matches(ret, BCH_ERR_open_buckets_empty)) - goto allocate_blocking; + if (bch2_err_matches(ret, BCH_ERR_open_buckets_empty)) { + int ret = open_bucket_add_buckets(trans, &ptrs, wp, devs_have, + target, erasure_code, + nr_replicas, &nr_effective, + &have_cache, watermark, + flags, cl); + if (!ret || + bch2_err_matches(ret, BCH_ERR_transaction_restart) || + bch2_err_matches(ret, BCH_ERR_open_buckets_empty)) + goto alloc_done; + } /* * Only try to allocate cache (durability = 0 devices) from the @@ -1389,7 +1398,6 @@ retry: &have_cache, watermark, flags, cl); } else { -allocate_blocking: ret = open_bucket_add_buckets(trans, &ptrs, wp, devs_have, target, erasure_code, nr_replicas, &nr_effective, |
