[PATCH 09/23] Add parent inode number/generation for directories
Zach Brown
zab at zabbo.net
Wed Apr 9 12:34:43 PDT 2025
On Fri, Apr 04, 2025 at 08:45:25PM +0200, Valerie Aurora wrote:
> Add a parent inode number/generation field to the inode to give us back
> references for directories. For non-directories, this field is empty
> and back references will go in a per-inode btree (TODO).
> @@ -20,7 +20,7 @@
> */
>
> int ngnfs_inode_init(struct ngnfs_inode_txn_ref *itref, struct ngnfs_inode_ino_gen *ig, u32 nlink,
> - umode_t mode, u64 nsec)
> + umode_t mode, u64 nsec, struct ngnfs_inode_ino_gen *parent_ig)
> {
> struct ngnfs_txn_block *tblk = itref->tblk;
> struct ngnfs_inode *ninode = itref->ninode;
> @@ -29,6 +29,13 @@ int ngnfs_inode_init(struct ngnfs_inode_txn_ref *itref, struct ngnfs_inode_ino_g
> ngnfs_tblk_assign(tblk, ninode->ig.gen, cpu_to_le64(ig->gen));
> ngnfs_tblk_assign(tblk, ninode->size, 0);
> ngnfs_tblk_assign(tblk, ninode->version, cpu_to_le64(1));
> + if (parent_ig != NULL) {
> + ngnfs_tblk_assign(tblk, ninode->parent_ig.ino, cpu_to_le64(parent_ig->ino));
> + ngnfs_tblk_assign(tblk, ninode->parent_ig.gen, cpu_to_le64(parent_ig->gen));
> + } else {
> + ngnfs_tblk_assign(tblk, ninode->parent_ig.ino, cpu_to_le64(0));
> + ngnfs_tblk_assign(tblk, ninode->parent_ig.gen, cpu_to_le64(0));
> + }
Can we get away with requiring callers to pass in a parent ig so we
don't have this case? It seems like we should be able to.
- z
More information about the ngnfs-devel
mailing list