From: Yan Date: Thu, 24 Jul 2008 16:18:16 +0000 (-0400) Subject: Btrfs: Properly release lock in pin_down_bytes X-Git-Tag: upstream/snapshot3+hdmi~20477^2~11^2~55^2~56^2~30^2~94 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=974e35a82d022434efa50fe5f805ae14c542ba8c;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git 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: Chris Mason --- diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index e6a3ba9..cdfb4ff 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -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 =