X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=file-item.c;h=7b0ff358550956074484194b24760b5a84e8d95f;hb=457a288cb5c7dccd88632dab5a903bd00a2142f0;hp=7f2f95b30e04b5d342c3d4b259bf1916149797b7;hpb=175b972c6ba7dd2f40ee799c93f49cf893b63bc2;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/file-item.c b/file-item.c index 7f2f95b..7b0ff35 100644 --- a/file-item.c +++ b/file-item.c @@ -27,7 +27,7 @@ #include "crc32c.h" #include "internal.h" -#define MAX_CSUM_ITEMS(r,size) ((((BTRFS_LEAF_DATA_SIZE(r) - \ +#define MAX_CSUM_ITEMS(r, size) ((((BTRFS_LEAF_DATA_SIZE(r->fs_info) - \ sizeof(struct btrfs_item) * 2) / \ size) - 1)) int btrfs_insert_file_extent(struct btrfs_trans_handle *trans, @@ -86,7 +86,7 @@ out: int btrfs_insert_inline_extent(struct btrfs_trans_handle *trans, struct btrfs_root *root, u64 objectid, - u64 offset, char *buffer, size_t size) + u64 offset, const char *buffer, size_t size) { struct btrfs_key key; struct btrfs_path *path; @@ -162,7 +162,8 @@ btrfs_lookup_csum(struct btrfs_trans_handle *trans, if (found_key.type != BTRFS_EXTENT_CSUM_KEY) goto fail; - csum_offset = (bytenr - found_key.offset) / root->sectorsize; + csum_offset = (bytenr - found_key.offset) / + root->fs_info->sectorsize; csums_in_item = btrfs_item_size_nr(leaf, path->slots[0]); csums_in_item /= csum_size; @@ -195,6 +196,7 @@ int btrfs_csum_file_block(struct btrfs_trans_handle *trans, struct extent_buffer *leaf = NULL; u64 csum_offset; u32 csum_result = ~(u32)0; + u32 sectorsize = root->fs_info->sectorsize; u32 nritems; u32 ins_size; u16 csum_size = @@ -265,7 +267,7 @@ int btrfs_csum_file_block(struct btrfs_trans_handle *trans, path->slots[0]--; leaf = path->nodes[0]; btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0]); - csum_offset = (file_key.offset - found_key.offset) / root->sectorsize; + csum_offset = (file_key.offset - found_key.offset) / sectorsize; if (found_key.objectid != BTRFS_EXTENT_CSUM_OBJECTID || found_key.type != BTRFS_EXTENT_CSUM_KEY || csum_offset >= MAX_CSUM_ITEMS(root, csum_size)) { @@ -288,7 +290,7 @@ insert: if (found_next) { u64 tmp = min(alloc_end, next_offset); tmp -= file_key.offset; - tmp /= root->sectorsize; + tmp /= sectorsize; tmp = max((u64)1, tmp); tmp = min(tmp, (u64)MAX_CSUM_ITEMS(root, csum_size)); ins_size = csum_size * tmp; @@ -310,7 +312,7 @@ csum: item = (struct btrfs_csum_item *)((unsigned char *)item + csum_offset * csum_size); found: - csum_result = btrfs_csum_data(root, data, csum_result, len); + csum_result = btrfs_csum_data(data, csum_result, len); btrfs_csum_final(csum_result, (u8 *)&csum_result); if (csum_result == 0) { printk("csum result is 0 for block %llu\n", @@ -346,12 +348,12 @@ static noinline int truncate_one_csum(struct btrfs_root *root, btrfs_super_csum_size(root->fs_info->super_copy); u64 csum_end; u64 end_byte = bytenr + len; - u32 blocksize = root->sectorsize; + u32 blocksize = root->fs_info->sectorsize; int ret; leaf = path->nodes[0]; csum_end = btrfs_item_size_nr(leaf, path->slots[0]) / csum_size; - csum_end *= root->sectorsize; + csum_end *= root->fs_info->sectorsize; csum_end += key->offset; if (key->offset < bytenr && csum_end <= end_byte) { @@ -403,7 +405,7 @@ int btrfs_del_csums(struct btrfs_trans_handle *trans, int ret; u16 csum_size = btrfs_super_csum_size(root->fs_info->super_copy); - int blocksize = root->sectorsize; + int blocksize = root->fs_info->sectorsize; root = root->fs_info->csum_root;