summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosef Bacik <josef@toxicpanda.com>2024-04-13 00:11:22 -0400
committerDavid Sterba <dsterba@suse.com>2024-05-07 21:31:05 +0200
commit99f2be15229ae269afa9af0eeaca2deefa87fdb3 (patch)
tree408e19a54ae367d91c52a84dcfffa347c31bca98
parent7f6af7c434d9db0f937774e9f0e31bf5fc73a86e (diff)
downloadlinux-stable-99f2be15229ae269afa9af0eeaca2deefa87fdb3.tar.gz
linux-stable-99f2be15229ae269afa9af0eeaca2deefa87fdb3.tar.bz2
linux-stable-99f2be15229ae269afa9af0eeaca2deefa87fdb3.zip
btrfs: replace btrfs_delayed_*_ref with btrfs_*_ref
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>
-rw-r--r--fs/btrfs/delayed-ref.c10
-rw-r--r--fs/btrfs/delayed-ref.h55
2 files changed, 27 insertions, 38 deletions
diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
index 8d553347e11b..6cc80fb10da2 100644
--- a/fs/btrfs/delayed-ref.c
+++ b/fs/btrfs/delayed-ref.c
@@ -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,
diff --git a/fs/btrfs/delayed-ref.h b/fs/btrfs/delayed-ref.h
index 09f2c4cfea7f..04b180ebe1fe 100644
--- a/fs/btrfs/delayed-ref.h
+++ b/fs/btrfs/delayed-ref.h
@@ -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;
/*
@@ -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;
};
};
@@ -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;