diff options
author | Yan Zheng <zheng.yan@oracle.com> | 2008-12-17 18:21:48 +0300 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-12-17 18:21:48 +0300 |
commit | 87b29b208c6c38f3446d2de6ece946e2459052cf (patch) | |
tree | 43e717289e1e8446fced4093ab39667bba9ea60a /fs/btrfs/file-item.c | |
parent | d7f735d0bc68c411abda0a612e1421bdade649cc (diff) | |
download | linux-87b29b208c6c38f3446d2de6ece946e2459052cf.tar.xz |
Btrfs: properly check free space for tree balancing
btrfs_insert_empty_items takes the space needed by the btrfs_item
structure into account when calculating the required free space.
So the tree balancing code shouldn't add sizeof(struct btrfs_item)
to the size when checking the free space. This patch removes these
superfluous additions.
Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
Diffstat (limited to 'fs/btrfs/file-item.c')
-rw-r--r-- | fs/btrfs/file-item.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c index 7acadf3b742a..cc6e0b6de949 100644 --- a/fs/btrfs/file-item.c +++ b/fs/btrfs/file-item.c @@ -300,6 +300,10 @@ int btrfs_lookup_csums_range(struct btrfs_root *root, u64 start, u64 end, size = btrfs_item_size_nr(leaf, path->slots[0]); csum_end = key.offset + (size / csum_size) * root->sectorsize; + if (csum_end <= start) { + path->slots[0]++; + continue; + } size = min(csum_end, end + 1) - start; sums = kzalloc(btrfs_ordered_sum_size(root, size), GFP_NOFS); |