bcachefs: Fix bch2_read_btree()

In the debugfs code, we had an incorrect use of drop_locks_do(); on
transaction restart we don't want to restart the current loop iteration,
since we've already emitted the current key to the buffer for userspace.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2023-12-07 23:50:38 -05:00
parent a0acc24fed
commit be1fa63de8

View File

@ -385,7 +385,8 @@ static ssize_t bch2_read_btree(struct file *file, char __user *buf,
BTREE_ITER_ALL_SNAPSHOTS, k, ({
bch2_bkey_val_to_text(&i->buf, i->c, k);
prt_newline(&i->buf);
drop_locks_do(trans, flush_buf(i));
bch2_trans_unlock(trans);
flush_buf(i);
}));
i->from = iter.pos;
@ -490,7 +491,8 @@ static ssize_t bch2_read_bfloat_failed(struct file *file, char __user *buf,
}
bch2_bfloat_to_text(&i->buf, l->b, _k);
drop_locks_do(trans, flush_buf(i));
bch2_trans_unlock(trans);
flush_buf(i);
}));
i->from = iter.pos;