diff --git a/check/main.c b/check/main.c index 32b13749..b6a7e289 100644 --- a/check/main.c +++ b/check/main.c @@ -4222,10 +4222,10 @@ static int swap_values(struct btrfs_root *root, struct btrfs_path *path, item2 = btrfs_item_nr(slot + 1); btrfs_item_key_to_cpu(buf, &k1, slot); btrfs_item_key_to_cpu(buf, &k2, slot + 1); - item1_offset = btrfs_item_offset(buf, item1); - item2_offset = btrfs_item_offset(buf, item2); - item1_size = btrfs_item_size(buf, item1); - item2_size = btrfs_item_size(buf, item2); + item1_offset = btrfs_item_offset_nr(buf, slot); + item2_offset = btrfs_item_offset_nr(buf, slot + 1); + item1_size = btrfs_item_size_nr(buf, slot); + item2_size = btrfs_item_size_nr(buf, slot + 1); item1_data = malloc(item1_size); if (!item1_data) diff --git a/image/main.c b/image/main.c index 3125163d..e953d981 100644 --- a/image/main.c +++ b/image/main.c @@ -1239,7 +1239,7 @@ static void truncate_item(struct extent_buffer *eb, int slot, u32 new_size) for (i = slot; i < nritems; i++) { u32 ioff; item = btrfs_item_nr(i); - ioff = btrfs_item_offset(eb, item); + ioff = btrfs_item_offset_nr(eb, i); btrfs_set_item_offset(eb, item, ioff + size_diff); } diff --git a/kernel-shared/backref.c b/kernel-shared/backref.c index f1a638ed..327599b7 100644 --- a/kernel-shared/backref.c +++ b/kernel-shared/backref.c @@ -1417,7 +1417,6 @@ static int iterate_inode_refs(u64 inum, struct btrfs_root *fs_root, u64 parent = 0; int found = 0; struct extent_buffer *eb; - struct btrfs_item *item; struct btrfs_inode_ref *iref; struct btrfs_key found_key; @@ -1442,10 +1441,9 @@ static int iterate_inode_refs(u64 inum, struct btrfs_root *fs_root, extent_buffer_get(eb); btrfs_release_path(path); - item = btrfs_item_nr(slot); iref = btrfs_item_ptr(eb, slot, struct btrfs_inode_ref); - for (cur = 0; cur < btrfs_item_size(eb, item); cur += len) { + for (cur = 0; cur < btrfs_item_size_nr(eb, slot); cur += len) { name_len = btrfs_inode_ref_name_len(eb, iref); /* path must be released before calling iterate()! */ pr_debug("following ref at offset %u for inode %llu in " diff --git a/kernel-shared/ctree.c b/kernel-shared/ctree.c index 10b22b2c..fc661aeb 100644 --- a/kernel-shared/ctree.c +++ b/kernel-shared/ctree.c @@ -2041,7 +2041,7 @@ static int push_leaf_right(struct btrfs_trans_handle *trans, struct btrfs_root if (path->slots[0] == i) push_space += data_size + sizeof(*item); - this_item_size = btrfs_item_size(left, item); + this_item_size = btrfs_item_size_nr(left, i); if (this_item_size + sizeof(*item) + push_space > free_space) break; push_items++; @@ -2092,7 +2092,7 @@ static int push_leaf_right(struct btrfs_trans_handle *trans, struct btrfs_root push_space = BTRFS_LEAF_DATA_SIZE(root->fs_info); for (i = 0; i < right_nritems; i++) { item = btrfs_item_nr(i); - push_space -= btrfs_item_size(right, item); + push_space -= btrfs_item_size_nr(right, i); btrfs_set_item_offset(right, item, push_space); } @@ -2187,7 +2187,7 @@ static int push_leaf_left(struct btrfs_trans_handle *trans, struct btrfs_root if (path->slots[0] == i) push_space += data_size + sizeof(*item); - this_item_size = btrfs_item_size(right, item); + this_item_size = btrfs_item_size_nr(right, i); if (this_item_size + sizeof(*item) + push_space > free_space) break; @@ -2224,7 +2224,7 @@ static int push_leaf_left(struct btrfs_trans_handle *trans, struct btrfs_root u32 ioff; item = btrfs_item_nr(i); - ioff = btrfs_item_offset(left, item); + ioff = btrfs_item_offset_nr(left, i); btrfs_set_item_offset(left, item, ioff - (BTRFS_LEAF_DATA_SIZE(root->fs_info) - old_left_item_size)); @@ -2256,7 +2256,7 @@ static int push_leaf_left(struct btrfs_trans_handle *trans, struct btrfs_root push_space = BTRFS_LEAF_DATA_SIZE(root->fs_info); for (i = 0; i < right_nritems; i++) { item = btrfs_item_nr(i); - push_space = push_space - btrfs_item_size(right, item); + push_space = push_space - btrfs_item_size_nr(right, i); btrfs_set_item_offset(right, item, push_space); } @@ -2319,7 +2319,7 @@ static noinline int copy_for_split(struct btrfs_trans_handle *trans, for (i = 0; i < nritems; i++) { struct btrfs_item *item = btrfs_item_nr(i); - u32 ioff = btrfs_item_offset(right, item); + u32 ioff = btrfs_item_offset_nr(right, i); btrfs_set_item_offset(right, item, ioff + rt_data_off); } @@ -2574,8 +2574,8 @@ int btrfs_split_item(struct btrfs_trans_handle *trans, split: item = btrfs_item_nr(path->slots[0]); - orig_offset = btrfs_item_offset(leaf, item); - item_size = btrfs_item_size(leaf, item); + orig_offset = btrfs_item_offset_nr(leaf, path->slots[0]); + item_size = btrfs_item_size_nr(leaf, path->slots[0]); buf = kmalloc(item_size, GFP_NOFS); @@ -2666,7 +2666,7 @@ int btrfs_truncate_item(struct btrfs_path *path, u32 new_size, int from_end) for (i = slot; i < nritems; i++) { u32 ioff; item = btrfs_item_nr(i); - ioff = btrfs_item_offset(leaf, item); + ioff = btrfs_item_offset_nr(leaf, i); btrfs_set_item_offset(leaf, item, ioff + size_diff); } @@ -2762,7 +2762,7 @@ int btrfs_extend_item(struct btrfs_root *root, struct btrfs_path *path, for (i = slot; i < nritems; i++) { u32 ioff; item = btrfs_item_nr(i); - ioff = btrfs_item_offset(leaf, item); + ioff = btrfs_item_offset_nr(leaf, i); btrfs_set_item_offset(leaf, item, ioff - data_size); } @@ -2854,7 +2854,7 @@ int btrfs_insert_empty_items(struct btrfs_trans_handle *trans, u32 ioff; item = btrfs_item_nr(i); - ioff = btrfs_item_offset(leaf, item); + ioff = btrfs_item_offset_nr(leaf, i); btrfs_set_item_offset(leaf, item, ioff - total_data); } @@ -3029,7 +3029,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root, u32 ioff; item = btrfs_item_nr(i); - ioff = btrfs_item_offset(leaf, item); + ioff = btrfs_item_offset_nr(leaf, i); btrfs_set_item_offset(leaf, item, ioff + dsize); } diff --git a/kernel-shared/dir-item.c b/kernel-shared/dir-item.c index 590b79a9..729d4308 100644 --- a/kernel-shared/dir-item.c +++ b/kernel-shared/dir-item.c @@ -32,7 +32,6 @@ static struct btrfs_dir_item *insert_with_overflow(struct btrfs_trans_handle { int ret; char *ptr; - struct btrfs_item *item; struct extent_buffer *leaf; ret = btrfs_insert_empty_item(trans, root, path, cpu_key, data_size); @@ -48,10 +47,9 @@ static struct btrfs_dir_item *insert_with_overflow(struct btrfs_trans_handle return ERR_PTR(ret); WARN_ON(ret > 0); leaf = path->nodes[0]; - item = btrfs_item_nr(path->slots[0]); ptr = btrfs_item_ptr(leaf, path->slots[0], char); - BUG_ON(data_size > btrfs_item_size(leaf, item)); - ptr += btrfs_item_size(leaf, item) - data_size; + BUG_ON(data_size > btrfs_item_size_nr(leaf, path->slots[0])); + ptr += btrfs_item_size_nr(leaf, path->slots[0]) - data_size; return (struct btrfs_dir_item *)ptr; } diff --git a/kernel-shared/inode-item.c b/kernel-shared/inode-item.c index 67173eb1..7ca75f6d 100644 --- a/kernel-shared/inode-item.c +++ b/kernel-shared/inode-item.c @@ -336,7 +336,6 @@ int btrfs_insert_inode_extref(struct btrfs_trans_handle *trans, struct btrfs_path *path; struct btrfs_key key; struct extent_buffer *leaf; - struct btrfs_item *item; key.objectid = inode_objectid; key.type = BTRFS_INODE_EXTREF_KEY; @@ -361,9 +360,8 @@ int btrfs_insert_inode_extref(struct btrfs_trans_handle *trans, goto out; leaf = path->nodes[0]; - item = btrfs_item_nr(path->slots[0]); ptr = (unsigned long)btrfs_item_ptr(leaf, path->slots[0], char); - ptr += btrfs_item_size(leaf, item) - ins_len; + ptr += btrfs_item_size_nr(leaf, path->slots[0]) - ins_len; extref = (struct btrfs_inode_extref *)ptr; btrfs_set_inode_extref_name_len(path->nodes[0], extref, name_len); diff --git a/kernel-shared/print-tree.c b/kernel-shared/print-tree.c index 7308599f..6e601779 100644 --- a/kernel-shared/print-tree.c +++ b/kernel-shared/print-tree.c @@ -1320,7 +1320,7 @@ void btrfs_print_leaf(struct extent_buffer *eb, unsigned int mode) break; } item = btrfs_item_nr(i); - item_size = btrfs_item_size(eb, item); + item_size = btrfs_item_size_nr(eb, i); /* Untyped extraction of slot from btrfs_item_ptr */ ptr = btrfs_item_ptr(eb, i, void*); @@ -1332,8 +1332,8 @@ void btrfs_print_leaf(struct extent_buffer *eb, unsigned int mode) printf("\titem %u ", i); btrfs_print_key(&disk_key); printf(" itemoff %u itemsize %u\n", - btrfs_item_offset(eb, item), - btrfs_item_size(eb, item)); + btrfs_item_offset_nr(eb, i), + btrfs_item_size_nr(eb, i)); if (type == 0 && objectid == BTRFS_FREE_SPACE_OBJECTID) print_free_space_header(eb, i);