diff options
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 4a79e1c5ebd0..ebd7d6c37df8 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include "tree-log.h" | 50 | #include "tree-log.h" |
51 | #include "ref-cache.h" | 51 | #include "ref-cache.h" |
52 | #include "compression.h" | 52 | #include "compression.h" |
53 | #include "locking.h" | ||
53 | 54 | ||
54 | struct btrfs_iget_args { | 55 | struct btrfs_iget_args { |
55 | u64 ino; | 56 | u64 ino; |
@@ -2021,6 +2022,7 @@ void btrfs_read_locked_inode(struct inode *inode) | |||
2021 | BTRFS_I(inode)->flags = btrfs_inode_flags(leaf, inode_item); | 2022 | BTRFS_I(inode)->flags = btrfs_inode_flags(leaf, inode_item); |
2022 | 2023 | ||
2023 | alloc_group_block = btrfs_inode_block_group(leaf, inode_item); | 2024 | alloc_group_block = btrfs_inode_block_group(leaf, inode_item); |
2025 | |||
2024 | BTRFS_I(inode)->block_group = btrfs_find_block_group(root, 0, | 2026 | BTRFS_I(inode)->block_group = btrfs_find_block_group(root, 0, |
2025 | alloc_group_block, 0); | 2027 | alloc_group_block, 0); |
2026 | btrfs_free_path(path); | 2028 | btrfs_free_path(path); |
@@ -2117,6 +2119,7 @@ noinline int btrfs_update_inode(struct btrfs_trans_handle *trans, | |||
2117 | goto failed; | 2119 | goto failed; |
2118 | } | 2120 | } |
2119 | 2121 | ||
2122 | btrfs_unlock_up_safe(path, 1); | ||
2120 | leaf = path->nodes[0]; | 2123 | leaf = path->nodes[0]; |
2121 | inode_item = btrfs_item_ptr(leaf, path->slots[0], | 2124 | inode_item = btrfs_item_ptr(leaf, path->slots[0], |
2122 | struct btrfs_inode_item); | 2125 | struct btrfs_inode_item); |