Commit c8422684 authored by David Sterba's avatar David Sterba

btrfs: add set/get accessors for root_item::drop_level

The drop_level member is used directly unlike all the other int types in
root_item. Add the definition and use it everywhere. The type is u8 so
there's no conversion necessary and the helpers are properly inlined,
this is for consistency.
Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent f944d2cb
...@@ -2089,6 +2089,7 @@ BTRFS_SETGET_FUNCS(disk_root_level, struct btrfs_root_item, level, 8); ...@@ -2089,6 +2089,7 @@ BTRFS_SETGET_FUNCS(disk_root_level, struct btrfs_root_item, level, 8);
BTRFS_SETGET_STACK_FUNCS(root_generation, struct btrfs_root_item, BTRFS_SETGET_STACK_FUNCS(root_generation, struct btrfs_root_item,
generation, 64); generation, 64);
BTRFS_SETGET_STACK_FUNCS(root_bytenr, struct btrfs_root_item, bytenr, 64); BTRFS_SETGET_STACK_FUNCS(root_bytenr, struct btrfs_root_item, bytenr, 64);
BTRFS_SETGET_STACK_FUNCS(root_drop_level, struct btrfs_root_item, drop_level, 8);
BTRFS_SETGET_STACK_FUNCS(root_level, struct btrfs_root_item, level, 8); BTRFS_SETGET_STACK_FUNCS(root_level, struct btrfs_root_item, level, 8);
BTRFS_SETGET_STACK_FUNCS(root_dirid, struct btrfs_root_item, root_dirid, 64); BTRFS_SETGET_STACK_FUNCS(root_dirid, struct btrfs_root_item, root_dirid, 64);
BTRFS_SETGET_STACK_FUNCS(root_refs, struct btrfs_root_item, refs, 32); BTRFS_SETGET_STACK_FUNCS(root_refs, struct btrfs_root_item, refs, 32);
......
...@@ -1179,7 +1179,7 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans, ...@@ -1179,7 +1179,7 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans,
generate_random_guid(root->root_item.uuid); generate_random_guid(root->root_item.uuid);
else else
export_guid(root->root_item.uuid, &guid_null); export_guid(root->root_item.uuid, &guid_null);
root->root_item.drop_level = 0; btrfs_set_root_drop_level(&root->root_item, 0);
key.objectid = objectid; key.objectid = objectid;
key.type = BTRFS_ROOT_ITEM_KEY; key.type = BTRFS_ROOT_ITEM_KEY;
......
...@@ -5496,7 +5496,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref, int for_reloc) ...@@ -5496,7 +5496,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref, int for_reloc)
memcpy(&wc->update_progress, &key, memcpy(&wc->update_progress, &key,
sizeof(wc->update_progress)); sizeof(wc->update_progress));
level = root_item->drop_level; level = btrfs_root_drop_level(root_item);
BUG_ON(level == 0); BUG_ON(level == 0);
path->lowest_level = level; path->lowest_level = level;
ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
...@@ -5529,7 +5529,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref, int for_reloc) ...@@ -5529,7 +5529,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref, int for_reloc)
} }
BUG_ON(wc->refs[level] == 0); BUG_ON(wc->refs[level] == 0);
if (level == root_item->drop_level) if (level == btrfs_root_drop_level(root_item))
break; break;
btrfs_tree_unlock(path->nodes[level]); btrfs_tree_unlock(path->nodes[level]);
...@@ -5574,7 +5574,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref, int for_reloc) ...@@ -5574,7 +5574,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref, int for_reloc)
} }
btrfs_cpu_key_to_disk(&root_item->drop_progress, btrfs_cpu_key_to_disk(&root_item->drop_progress,
&wc->drop_progress); &wc->drop_progress);
root_item->drop_level = wc->drop_level; btrfs_set_root_drop_level(root_item, wc->drop_level);
BUG_ON(wc->level == 0); BUG_ON(wc->level == 0);
if (btrfs_should_end_transaction(trans) || if (btrfs_should_end_transaction(trans) ||
......
...@@ -4105,7 +4105,7 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry) ...@@ -4105,7 +4105,7 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
memset(&dest->root_item.drop_progress, 0, memset(&dest->root_item.drop_progress, 0,
sizeof(dest->root_item.drop_progress)); sizeof(dest->root_item.drop_progress));
dest->root_item.drop_level = 0; btrfs_set_root_drop_level(&dest->root_item, 0);
btrfs_set_root_refs(&dest->root_item, 0); btrfs_set_root_refs(&dest->root_item, 0);
if (!test_and_set_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED, &dest->state)) { if (!test_and_set_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED, &dest->state)) {
......
...@@ -783,7 +783,7 @@ static struct btrfs_root *create_reloc_root(struct btrfs_trans_handle *trans, ...@@ -783,7 +783,7 @@ static struct btrfs_root *create_reloc_root(struct btrfs_trans_handle *trans,
btrfs_set_root_refs(root_item, 0); btrfs_set_root_refs(root_item, 0);
memset(&root_item->drop_progress, 0, memset(&root_item->drop_progress, 0,
sizeof(struct btrfs_disk_key)); sizeof(struct btrfs_disk_key));
root_item->drop_level = 0; btrfs_set_root_drop_level(root_item, 0);
} }
btrfs_tree_unlock(eb); btrfs_tree_unlock(eb);
...@@ -1575,7 +1575,7 @@ static void insert_dirty_subvol(struct btrfs_trans_handle *trans, ...@@ -1575,7 +1575,7 @@ static void insert_dirty_subvol(struct btrfs_trans_handle *trans,
reloc_root_item = &reloc_root->root_item; reloc_root_item = &reloc_root->root_item;
memset(&reloc_root_item->drop_progress, 0, memset(&reloc_root_item->drop_progress, 0,
sizeof(reloc_root_item->drop_progress)); sizeof(reloc_root_item->drop_progress));
reloc_root_item->drop_level = 0; btrfs_set_root_drop_level(reloc_root_item, 0);
btrfs_set_root_refs(reloc_root_item, 0); btrfs_set_root_refs(reloc_root_item, 0);
btrfs_update_reloc_root(trans, root); btrfs_update_reloc_root(trans, root);
...@@ -1672,7 +1672,7 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc, ...@@ -1672,7 +1672,7 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc,
} else { } else {
btrfs_disk_key_to_cpu(&key, &root_item->drop_progress); btrfs_disk_key_to_cpu(&key, &root_item->drop_progress);
level = root_item->drop_level; level = btrfs_root_drop_level(root_item);
BUG_ON(level == 0); BUG_ON(level == 0);
path->lowest_level = level; path->lowest_level = level;
ret = btrfs_search_slot(NULL, reloc_root, &key, path, 0, 0); ret = btrfs_search_slot(NULL, reloc_root, &key, path, 0, 0);
...@@ -1769,7 +1769,7 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc, ...@@ -1769,7 +1769,7 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc,
*/ */
btrfs_node_key(path->nodes[level], &root_item->drop_progress, btrfs_node_key(path->nodes[level], &root_item->drop_progress,
path->slots[level]); path->slots[level]);
root_item->drop_level = level; btrfs_set_root_drop_level(root_item, level);
btrfs_end_transaction_throttle(trans); btrfs_end_transaction_throttle(trans);
trans = NULL; trans = NULL;
...@@ -3694,7 +3694,7 @@ static noinline_for_stack int mark_garbage_root(struct btrfs_root *root) ...@@ -3694,7 +3694,7 @@ static noinline_for_stack int mark_garbage_root(struct btrfs_root *root)
memset(&root->root_item.drop_progress, 0, memset(&root->root_item.drop_progress, 0,
sizeof(root->root_item.drop_progress)); sizeof(root->root_item.drop_progress));
root->root_item.drop_level = 0; btrfs_set_root_drop_level(&root->root_item, 0);
btrfs_set_root_refs(&root->root_item, 0); btrfs_set_root_refs(&root->root_item, 0);
ret = btrfs_update_root(trans, fs_info->tree_root, ret = btrfs_update_root(trans, fs_info->tree_root,
&root->root_key, &root->root_item); &root->root_key, &root->root_item);
......
...@@ -1118,10 +1118,10 @@ static int check_root_item(struct extent_buffer *leaf, struct btrfs_key *key, ...@@ -1118,10 +1118,10 @@ static int check_root_item(struct extent_buffer *leaf, struct btrfs_key *key,
btrfs_root_level(&ri), BTRFS_MAX_LEVEL - 1); btrfs_root_level(&ri), BTRFS_MAX_LEVEL - 1);
return -EUCLEAN; return -EUCLEAN;
} }
if (ri.drop_level >= BTRFS_MAX_LEVEL) { if (btrfs_root_drop_level(&ri) >= BTRFS_MAX_LEVEL) {
generic_err(leaf, slot, generic_err(leaf, slot,
"invalid root level, have %u expect [0, %u]", "invalid root level, have %u expect [0, %u]",
ri.drop_level, BTRFS_MAX_LEVEL - 1); btrfs_root_drop_level(&ri), BTRFS_MAX_LEVEL - 1);
return -EUCLEAN; return -EUCLEAN;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment