bcachefs: Fix snapshot skiplists during snapshot deletion
In snapshot deleion, we have to pick new skiplist nodes for entries that point to nodes being deleted. The function that finds a new skiplist node, skipping over entries being deleted, was incorrect: if n = 0, but the parent node is being deleted, we also need to skip over that node. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
4637429e39
commit
1e2d399970
|
@ -1288,6 +1288,9 @@ static inline u32 bch2_snapshot_nth_parent_skip(struct bch_fs *c, u32 id, u32 n,
|
|||
snapshot_id_list *skip)
|
||||
{
|
||||
rcu_read_lock();
|
||||
while (snapshot_list_has_id(skip, id))
|
||||
id = __bch2_snapshot_parent(c, id);
|
||||
|
||||
while (n--) {
|
||||
do {
|
||||
id = __bch2_snapshot_parent(c, id);
|
||||
|
|
Loading…
Reference in New Issue