Skip to content

Commit

Permalink
btrfs: replace btrfs_delayed_*_ref with btrfs_*_ref
Browse files Browse the repository at this point in the history
Now that these two structs are the same, move the btrfs_data_ref and
btrfs_tree_ref up and use these in the btrfs_delayed_ref_node.  Then
remove the btrfs_delayed_*_ref structs.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
josefbacik authored and kdave committed May 7, 2024
1 parent 7f6af7c commit 99f2be1
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 38 deletions.
10 changes: 4 additions & 6 deletions fs/btrfs/delayed-ref.c
Original file line number Diff line number Diff line change
Expand Up @@ -982,12 +982,10 @@ static void init_delayed_ref_common(struct btrfs_fs_info *fs_info,
RB_CLEAR_NODE(&ref->ref_node);
INIT_LIST_HEAD(&ref->add_list);

if (generic_ref->type == BTRFS_REF_DATA) {
ref->data_ref.objectid = generic_ref->data_ref.objectid;
ref->data_ref.offset = generic_ref->data_ref.offset;
} else {
ref->tree_ref.level = generic_ref->tree_ref.level;
}
if (generic_ref->type == BTRFS_REF_DATA)
ref->data_ref = generic_ref->data_ref;
else
ref->tree_ref = generic_ref->tree_ref;
}

void btrfs_init_tree_ref(struct btrfs_ref *generic_ref, int level, u64 mod_root,
Expand Down
55 changes: 23 additions & 32 deletions fs/btrfs/delayed-ref.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,32 @@ enum btrfs_delayed_ref_action {
BTRFS_UPDATE_DELAYED_HEAD,
} __packed;

struct btrfs_delayed_tree_ref {
int level;
};
struct btrfs_data_ref {
/* For EXTENT_DATA_REF */

struct btrfs_delayed_data_ref {
/* Inode which refers to this data extent */
u64 objectid;

/*
* file_offset - extent_offset
*
* file_offset is the key.offset of the EXTENT_DATA key.
* extent_offset is btrfs_file_extent_offset() of the EXTENT_DATA data.
*/
u64 offset;
};

struct btrfs_tree_ref {
/*
* Level of this tree block.
*
* Shared for skinny (TREE_BLOCK_REF) and normal tree ref.
*/
int level;

/* For non-skinny metadata, no special member needed */
};

struct btrfs_delayed_ref_node {
struct rb_node ref_node;
/*
Expand Down Expand Up @@ -84,8 +101,8 @@ struct btrfs_delayed_ref_node {
unsigned int type:8;

union {
struct btrfs_delayed_tree_ref tree_ref;
struct btrfs_delayed_data_ref data_ref;
struct btrfs_tree_ref tree_ref;
struct btrfs_data_ref data_ref;
};
};

Expand Down Expand Up @@ -222,32 +239,6 @@ enum btrfs_ref_type {
BTRFS_REF_LAST,
} __packed;

struct btrfs_data_ref {
/* For EXTENT_DATA_REF */

/* Inode which refers to this data extent */
u64 objectid;

/*
* file_offset - extent_offset
*
* file_offset is the key.offset of the EXTENT_DATA key.
* extent_offset is btrfs_file_extent_offset() of the EXTENT_DATA data.
*/
u64 offset;
};

struct btrfs_tree_ref {
/*
* Level of this tree block
*
* Shared for skinny (TREE_BLOCK_REF) and normal tree ref.
*/
int level;

/* For non-skinny metadata, no special member needed */
};

struct btrfs_ref {
enum btrfs_ref_type type;
enum btrfs_delayed_ref_action action;
Expand Down

0 comments on commit 99f2be1

Please sign in to comment.