[PATCH 1/1] rpdfs: Initialize xattrs btree root
Chris Kirby <[email protected]> Tue, 17 Mar 2026 12:11:10 -0500
| Newsgroups | dev.linux.lists.rpdfs-devel |
|---|---|
| Message-ID | <996447dee162477fece9b13ae8c7a0b300f2afc9.1773764619.git.ckirby@versity.com> |
Add rpdfs_btree_root_init() and use it to initialize the dirents and xattrs roots when creating a new inode. Signed-off-by: Chris Kirby <[email protected]> --- fs/rpdfs/btree.c | 8 ++++++++ fs/rpdfs/btree.h | 2 ++ fs/rpdfs/inode.c | 7 ++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/fs/rpdfs/btree.c b/fs/rpdfs/btree.c index a043a864d451..e70822de97f8 100644 --- a/fs/rpdfs/btree.c +++ b/fs/rpdfs/btree.c @@ -57,6 +57,14 @@ static struct rpdfs_btree_key min_key = { 0, 0 }; static struct rpdfs_btree_key max_key = { cpu_to_le64(U64_MAX), cpu_to_le64(U64_MAX) }; +/* Initialize an empty btree root */ +void rpdfs_btree_root_init(struct rpdfs_btree_root *root) +{ + root->height = 0; + root->ref.bnr = 0; + root->ref.alloc_counter = 0; +} + /* * Callers incrementally modify the block before it's written. We don't * want to write old kernel memory as block contents so we explicitly diff --git a/fs/rpdfs/btree.h b/fs/rpdfs/btree.h index efc0e2ad16b4..e3dbd3c85f22 100644 --- a/fs/rpdfs/btree.h +++ b/fs/rpdfs/btree.h @@ -25,6 +25,8 @@ typedef int (*rpdfs_btree_item_cb_t)(struct rpdfs_fs_info *rfi, struct rpdfs_btr struct rpdfs_btree_item_args *b, struct rpdfs_btree_item_args *c, void *fn_arg); +void rpdfs_btree_root_init(struct rpdfs_btree_root *root); + void rpdfs_btree_init_first_block(struct rpdfs_btree_root *root, struct rpdfs_block_ref *ref, struct rpdfs_btree_block *bt); diff --git a/fs/rpdfs/inode.c b/fs/rpdfs/inode.c index bdd31ce0b6da..049a19b79fe8 100644 --- a/fs/rpdfs/inode.c +++ b/fs/rpdfs/inode.c @@ -6,6 +6,7 @@ #include <linux/writeback.h> #include <linux/iversion.h> +#include "btree.h" #include "dir.h" #include "file.h" #include "inode.h" @@ -295,11 +296,11 @@ struct inode *rpdfs_new_inode(struct super_block *sb, struct rpdfs_ino_gen *ig) ri->refresh_wcount = 0; ri->xattr_creates = 0; ri->ig = *ig; - ri->dirents.height = 0; - ri->dirents.ref.bnr = 0; - ri->dirents.ref.alloc_counter = 0; inode->i_ino = le64_to_cpu(ri->ig.ino); + rpdfs_btree_root_init(&ri->dirents); + rpdfs_btree_root_init(&ri->xattrs); + ts = inode_set_ctime_current(inode); inode_set_mtime_to_ts(inode, ts); inode_set_atime_to_ts(inode, ts); -- 2.53.0