]> www.infradead.org Git - users/hch/block.git/commitdiff
bcachefs: Fix bch2_read_btree()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 8 Dec 2023 04:50:38 +0000 (23:50 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 1 Jan 2024 16:47:40 +0000 (11:47 -0500)
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>
fs/bcachefs/debug.c

index 57c5128db173f4579168c71b8c67749b1d63004c..c45421a2f40855306cdfe6a140bacea09f44b891 100644 (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;