Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddf23b3f authored by Josef Bacik's avatar Josef Bacik Committed by Chris Mason
Browse files

Btrfs: skip locking if searching the commit root in csum lookup



It's not enough to just search the commit root, since we could be cow'ing the
very block we need to search through, which would mean that its locked and we'll
still deadlock.  So use path->skip_locking as well.  Thanks,

Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent e0b6d65b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -183,8 +183,10 @@ static int __btrfs_lookup_bio_sums(struct btrfs_root *root,
	 * read from the commit root and sidestep a nasty deadlock
	 * between reading the free space cache and updating the csum tree.
	 */
	if (btrfs_is_free_space_inode(root, inode))
	if (btrfs_is_free_space_inode(root, inode)) {
		path->search_commit_root = 1;
		path->skip_locking = 1;
	}

	disk_bytenr = (u64)bio->bi_sector << 9;
	if (dio)