Commit 974e35a8 authored by Yan's avatar Yan Committed by Chris Mason
Browse files

Btrfs: Properly release lock in pin_down_bytes



When buffer isn't uptodate, pin_down_bytes may leave the tree locked
after it returns.

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 45467261
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1485,8 +1485,8 @@ static int pin_down_bytes(struct btrfs_root *root, u64 bytenr, u32 num_bytes,
		struct extent_buffer *buf;
		buf = btrfs_find_tree_block(root, bytenr, num_bytes);
		if (buf) {
			if (btrfs_try_tree_lock(buf) &&
			    btrfs_buffer_uptodate(buf, 0)) {
			if (btrfs_buffer_uptodate(buf, 0) &&
			    btrfs_try_tree_lock(buf)) {
				u64 transid =
				    root->fs_info->running_transaction->transid;
				u64 header_transid =