btrfs: add set/get accessors for root_item::drop_level
authorDavid Sterba <dsterba@suse.com>
Tue, 15 Sep 2020 19:44:52 +0000 (21:44 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 8 Dec 2020 14:53:52 +0000 (15:53 +0100)
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: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/inode.c
fs/btrfs/relocation.c
fs/btrfs/tree-checker.c

index d9188ec..b1b6d9a 100644 (file)
@@ -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,
                         generation, 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_dirid, struct btrfs_root_item, root_dirid, 64);
 BTRFS_SETGET_STACK_FUNCS(root_refs, struct btrfs_root_item, refs, 32);
index cf01f97..bd01e2c 100644 (file)
@@ -1179,7 +1179,7 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans,
                generate_random_guid(root->root_item.uuid);
        else
                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.type = BTRFS_ROOT_ITEM_KEY;
index 5fd60b1..bac1eb1 100644 (file)
@@ -5496,7 +5496,7 @@ int btrfs_drop_snapshot(struct btrfs_root *root, int update_ref, int for_reloc)
                memcpy(&wc->update_progress, &key,
                       sizeof(wc->update_progress));
 
-               level = root_item->drop_level;
+               level = btrfs_root_drop_level(root_item);
                BUG_ON(level == 0);
                path->lowest_level = level;
                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)
                        }
                        BUG_ON(wc->refs[level] == 0);
 
-                       if (level == root_item->drop_level)
+                       if (level == btrfs_root_drop_level(root_item))
                                break;
 
                        btrfs_tree_unlock(path->nodes[level]);
@@ -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,
                                      &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);
                if (btrfs_should_end_transaction(trans) ||
index 9c0bf69..2c97169 100644 (file)
@@ -4105,7 +4105,7 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
 
        memset(&dest->root_item.drop_progress, 0,
                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);
 
        if (!test_and_set_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED, &dest->state)) {
index 9ba92d8..3d4618a 100644 (file)
@@ -783,7 +783,7 @@ static struct btrfs_root *create_reloc_root(struct btrfs_trans_handle *trans,
                btrfs_set_root_refs(root_item, 0);
                memset(&root_item->drop_progress, 0,
                       sizeof(struct btrfs_disk_key));
-               root_item->drop_level = 0;
+               btrfs_set_root_drop_level(root_item, 0);
        }
 
        btrfs_tree_unlock(eb);
@@ -1575,7 +1575,7 @@ static void insert_dirty_subvol(struct btrfs_trans_handle *trans,
        reloc_root_item = &reloc_root->root_item;
        memset(&reloc_root_item->drop_progress, 0,
                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_update_reloc_root(trans, root);
 
@@ -1672,7 +1672,7 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc,
        } else {
                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);
                path->lowest_level = level;
                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,
                 */
                btrfs_node_key(path->nodes[level], &root_item->drop_progress,
                               path->slots[level]);
-               root_item->drop_level = level;
+               btrfs_set_root_drop_level(root_item, level);
 
                btrfs_end_transaction_throttle(trans);
                trans = NULL;
@@ -3694,7 +3694,7 @@ static noinline_for_stack int mark_garbage_root(struct btrfs_root *root)
 
        memset(&root->root_item.drop_progress, 0,
                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);
        ret = btrfs_update_root(trans, fs_info->tree_root,
                                &root->root_key, &root->root_item);
index ea2bb4c..cb9041d 100644 (file)
@@ -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);
                return -EUCLEAN;
        }
-       if (ri.drop_level >= BTRFS_MAX_LEVEL) {
+       if (btrfs_root_drop_level(&ri) >= BTRFS_MAX_LEVEL) {
                generic_err(leaf, slot,
                            "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;
        }