On 8.07.19 г. 15:01 ч., Stanislaw Gruszka wrote: > Upstream commit 38e3eebff643 ("btrfs: honor path->skip_locking in > backref code") was incorrectly backported to 4.14.y . It misses removal > of two lines from original commit, what cause deadlock. > > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203993 > Reported-by: Olivier Mazouffre <olivier.mazouffre@xxxxxxxxxxxxxxx> > Fixes: d819d97ea025 ("btrfs: honor path->skip_locking in backref code") > Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> > --- > I did not test the patch, not even compile, but backport looks > obviously wrong compared to original commit. I concur, it's indeed wrongly backported so: Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx> > > fs/btrfs/backref.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c > index d826fbaf7d50..e4d5e6eae409 100644 > --- a/fs/btrfs/backref.c > +++ b/fs/btrfs/backref.c > @@ -1290,8 +1290,6 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, > ret = -EIO; > goto out; > } > - btrfs_tree_read_lock(eb); > - btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK); > if (!path->skip_locking) { > btrfs_tree_read_lock(eb); > btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK); >