From: Darrick J. Wong Date: Tue, 7 Mar 2023 03:55:43 +0000 (-0800) Subject: xfs: attach rtgroup objects to btree cursors X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=3c70280575fc56b12e67d416292cf2b14bb91e75;p=users%2Fhch%2Fxfsprogs.git xfs: attach rtgroup objects to btree cursors Make it so that we can attach realtime group objects to btree cursors. This will be crucial for enabling rmap btrees in realtime groups. Signed-off-by: Darrick J. Wong --- diff --git a/libxfs/xfs_btree.c b/libxfs/xfs_btree.c index 165ce2513..e0276ad65 100644 --- a/libxfs/xfs_btree.c +++ b/libxfs/xfs_btree.c @@ -28,6 +28,7 @@ #include "xfile.h" #include "xfbtree.h" #include "xfs_btree_mem.h" +#include "xfs_rtgroup.h" /* * Btree magic numbers. @@ -473,6 +474,9 @@ xfs_btree_del_cursor( xfs_is_shutdown(cur->bc_mp) || error != 0); if (unlikely(cur->bc_flags & XFS_BTREE_STAGING)) kmem_free(cur->bc_ops); + if ((cur->bc_flags & XFS_BTREE_ROOT_IN_INODE) && + !(cur->bc_flags & XFS_BTREE_IN_XFILE) && cur->bc_ino.rtg) + xfs_rtgroup_put(cur->bc_ino.rtg); if (!(cur->bc_flags & XFS_BTREE_LONG_PTRS) && !(cur->bc_flags & XFS_BTREE_IN_XFILE) && cur->bc_ag.pag) xfs_perag_put(cur->bc_ag.pag); diff --git a/libxfs/xfs_btree.h b/libxfs/xfs_btree.h index bb6c2feec..ce0bc5dff 100644 --- a/libxfs/xfs_btree.h +++ b/libxfs/xfs_btree.h @@ -12,6 +12,7 @@ struct xfs_mount; struct xfs_trans; struct xfs_ifork; struct xfs_perag; +struct xfs_rtgroup; /* * Generic key, ptr and record wrapper structures. @@ -247,6 +248,7 @@ struct xfs_btree_cur_ag { /* Btree-in-inode cursor information */ struct xfs_btree_cur_ino { struct xfs_inode *ip; + struct xfs_rtgroup *rtg; /* if realtime metadata */ struct xbtree_ifakeroot *ifake; /* for staging cursor */ int allocated; short forksize;