diff options
-rw-r--r-- | fs/btrfs/inode.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 9b43a6f303b8..ddb0f0ecda6c 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -2504,7 +2504,7 @@ noinline int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, | |||
2504 | struct btrfs_path *path; | 2504 | struct btrfs_path *path; |
2505 | struct btrfs_key key; | 2505 | struct btrfs_key key; |
2506 | struct btrfs_key found_key; | 2506 | struct btrfs_key found_key; |
2507 | u32 found_type; | 2507 | u32 found_type = (u8)-1; |
2508 | struct extent_buffer *leaf; | 2508 | struct extent_buffer *leaf; |
2509 | struct btrfs_file_extent_item *fi; | 2509 | struct btrfs_file_extent_item *fi; |
2510 | u64 extent_start = 0; | 2510 | u64 extent_start = 0; |
@@ -2691,6 +2691,8 @@ next: | |||
2691 | if (pending_del_nr) | 2691 | if (pending_del_nr) |
2692 | goto del_pending; | 2692 | goto del_pending; |
2693 | btrfs_release_path(root, path); | 2693 | btrfs_release_path(root, path); |
2694 | if (found_type == BTRFS_INODE_ITEM_KEY) | ||
2695 | break; | ||
2694 | goto search_again; | 2696 | goto search_again; |
2695 | } | 2697 | } |
2696 | 2698 | ||
@@ -2707,6 +2709,8 @@ del_pending: | |||
2707 | BUG_ON(ret); | 2709 | BUG_ON(ret); |
2708 | pending_del_nr = 0; | 2710 | pending_del_nr = 0; |
2709 | btrfs_release_path(root, path); | 2711 | btrfs_release_path(root, path); |
2712 | if (found_type == BTRFS_INODE_ITEM_KEY) | ||
2713 | break; | ||
2710 | goto search_again; | 2714 | goto search_again; |
2711 | } | 2715 | } |
2712 | } | 2716 | } |