|
@@ -118,9 +118,11 @@ struct btrfs_csum_item *btrfs_lookup_csum(struct btrfs_trans_handle *trans,
|
|
csums_in_item = btrfs_item_size_nr(leaf, path->slots[0]);
|
|
csums_in_item = btrfs_item_size_nr(leaf, path->slots[0]);
|
|
csums_in_item /= csum_size;
|
|
csums_in_item /= csum_size;
|
|
|
|
|
|
- if (csum_offset >= csums_in_item) {
|
|
|
|
|
|
+ if (csum_offset == csums_in_item) {
|
|
ret = -EFBIG;
|
|
ret = -EFBIG;
|
|
goto fail;
|
|
goto fail;
|
|
|
|
+ } else if (csum_offset > csums_in_item) {
|
|
|
|
+ goto fail;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_csum_item);
|
|
item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_csum_item);
|