diff options
| author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-06-13 17:07:36 -0400 |
|---|---|---|
| committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-14 19:00:15 -0400 |
| commit | b0d3ab531f07b6fc22ed9b84e7b9a5ff9be90df9 (patch) | |
| tree | 567841ec65bd0bc955324f1cd68b9908eb0af8d1 /fs/bcachefs/recovery_passes.c | |
| parent | 132e1a2380d06c31a17c773aac6c676658b9686a (diff) | |
bcachefs: Reduce the scope of gc_lock
gc_lock is now only for synchronization between check_alloc_info and
interior btree updates - nothing else
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/recovery_passes.c')
| -rw-r--r-- | fs/bcachefs/recovery_passes.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/bcachefs/recovery_passes.c b/fs/bcachefs/recovery_passes.c index 4a59f52f8d56..73339a0a3111 100644 --- a/fs/bcachefs/recovery_passes.c +++ b/fs/bcachefs/recovery_passes.c @@ -193,6 +193,8 @@ int bch2_run_online_recovery_passes(struct bch_fs *c) { int ret = 0; + down_read(&c->state_lock); + for (unsigned i = 0; i < ARRAY_SIZE(recovery_pass_fns); i++) { struct recovery_pass_fn *p = recovery_pass_fns + i; @@ -208,6 +210,8 @@ int bch2_run_online_recovery_passes(struct bch_fs *c) break; } + up_read(&c->state_lock); + return ret; } |
