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.mazouf...@ims-bordeaux.fr>
Fixes: d819d97ea025 ("btrfs: honor path->skip_locking in backref code")
Signed-off-by: Stanislaw Gruszka <sgrus...@redhat.com>
---
I did not test the patch, not even compile, but backport looks
obviously wrong compared to original commit.

 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);
-- 
2.20.1

Reply via email to