diff options
Diffstat (limited to 'fs/btrfs/file-item.c')
| -rw-r--r-- | fs/btrfs/file-item.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c index ec160202be3e..c4628a201cb3 100644 --- a/fs/btrfs/file-item.c +++ b/fs/btrfs/file-item.c | |||
| @@ -118,9 +118,11 @@ struct btrfs_csum_item *btrfs_lookup_csum(struct btrfs_trans_handle *trans, | |||
| 118 | csums_in_item = btrfs_item_size_nr(leaf, path->slots[0]); | 118 | csums_in_item = btrfs_item_size_nr(leaf, path->slots[0]); |
| 119 | csums_in_item /= csum_size; | 119 | csums_in_item /= csum_size; |
| 120 | 120 | ||
| 121 | if (csum_offset >= csums_in_item) { | 121 | if (csum_offset == csums_in_item) { |
| 122 | ret = -EFBIG; | 122 | ret = -EFBIG; |
| 123 | goto fail; | 123 | goto fail; |
| 124 | } else if (csum_offset > csums_in_item) { | ||
| 125 | goto fail; | ||
| 124 | } | 126 | } |
| 125 | } | 127 | } |
| 126 | item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_csum_item); | 128 | item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_csum_item); |
| @@ -728,7 +730,6 @@ int btrfs_csum_file_blocks(struct btrfs_trans_handle *trans, | |||
| 728 | return -ENOMEM; | 730 | return -ENOMEM; |
| 729 | 731 | ||
| 730 | sector_sum = sums->sums; | 732 | sector_sum = sums->sums; |
| 731 | trans->adding_csums = 1; | ||
| 732 | again: | 733 | again: |
| 733 | next_offset = (u64)-1; | 734 | next_offset = (u64)-1; |
| 734 | found_next = 0; | 735 | found_next = 0; |
| @@ -899,7 +900,6 @@ next_sector: | |||
| 899 | goto again; | 900 | goto again; |
| 900 | } | 901 | } |
| 901 | out: | 902 | out: |
| 902 | trans->adding_csums = 0; | ||
| 903 | btrfs_free_path(path); | 903 | btrfs_free_path(path); |
| 904 | return ret; | 904 | return ret; |
| 905 | 905 | ||
