diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-19 15:23:56 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-31 12:18:11 -0400 |
commit | 0dd092bf1091a114f22136e5776aec21e6e4af2a (patch) | |
tree | 7ee7fa78f9a323b46723d353f114634cd6e436a4 /fs/bcachefs/snapshot.c | |
parent | 20e425d301d673dbd5df0c9d4b186c70b43813bb (diff) | |
download | lwn-0dd092bf1091a114f22136e5776aec21e6e4af2a.tar.gz lwn-0dd092bf1091a114f22136e5776aec21e6e4af2a.zip |
bcachefs: Fix lock ordering with snapshot_create_lock
We must not hold btree locks while taking snapshot_create_lock - this
fixes a lockdep splat.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/snapshot.c')
-rw-r--r-- | fs/bcachefs/snapshot.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/bcachefs/snapshot.c b/fs/bcachefs/snapshot.c index 4982468bfe11..5a62d2e14cb4 100644 --- a/fs/bcachefs/snapshot.c +++ b/fs/bcachefs/snapshot.c @@ -1447,6 +1447,7 @@ int bch2_delete_dead_snapshots(struct bch_fs *c) } } + bch2_trans_unlock(trans); down_write(&c->snapshot_create_lock); for_each_btree_key(trans, iter, BTREE_ID_snapshots, |