]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs: attach rtgroup objects to btree cursors
authorDarrick J. Wong <djwong@kernel.org>
Tue, 7 Mar 2023 03:55:43 +0000 (19:55 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 22 Nov 2023 23:03:37 +0000 (15:03 -0800)
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 <djwong@kernel.org>
libxfs/xfs_btree.c
libxfs/xfs_btree.h

index 165ce251376ae341d576c70ace3aee097e54060d..e0276ad655aa9a213e34a49d3041f1fd15b1630e 100644 (file)
@@ -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);
index bb6c2feecea7da6fd46a3cb811cdcd12b0d9a63b..ce0bc5dfffe1c949ebc665d4af39ef9662aefe88 100644 (file)
@@ -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;