xfs: make the btree cursor union members named structure
authorDave Chinner <dchinner@redhat.com>
Wed, 11 Mar 2020 00:57:07 +0000 (17:57 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Fri, 13 Mar 2020 17:37:14 +0000 (10:37 -0700)
we need to name the btree cursor private structures to be able
to pull them out of the deeply nested structure definition they are
in now.

Based on code extracted from a patchset by Darrick Wong.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
fs/xfs/libxfs/xfs_btree.h

index 12a2bc9..8fd4589 100644 (file)
@@ -188,6 +188,27 @@ union xfs_btree_cur_private {
        } abt;
 };
 
+/* Per-AG btree information. */
+struct xfs_btree_cur_ag {
+       struct xfs_buf                  *agbp;
+       xfs_agnumber_t                  agno;
+       union xfs_btree_cur_private     priv;
+};
+
+/* Btree-in-inode cursor information */
+struct xfs_btree_cur_ino {
+       struct xfs_inode                *ip;
+       int                             allocated;
+       short                           forksize;
+       char                            whichfork;
+       char                            flags;
+/* We are converting a delalloc reservation */
+#define        XFS_BTCUR_BMBT_WASDEL           (1 << 0)
+
+/* For extent swap, ignore owner check in verifier */
+#define        XFS_BTCUR_BMBT_INVALID_OWNER    (1 << 1)
+};
+
 /*
  * Btree cursor structure.
  * This collects all information needed by the btree code in one place.
@@ -209,21 +230,9 @@ typedef struct xfs_btree_cur
        xfs_btnum_t     bc_btnum;       /* identifies which btree type */
        int             bc_statoff;     /* offset of btre stats array */
        union {
-               struct {                        /* needed for BNO, CNT, INO */
-                       struct xfs_buf  *agbp;  /* agf/agi buffer pointer */
-                       xfs_agnumber_t  agno;   /* ag number */
-                       union xfs_btree_cur_private     priv;
-               } bc_ag;
-               struct {                        /* needed for BMAP */
-                       struct xfs_inode *ip;   /* pointer to our inode */
-                       int             allocated;      /* count of alloced */
-                       short           forksize;       /* fork's inode space */
-                       char            whichfork;      /* data or attr fork */
-                       char            flags;          /* flags */
-#define        XFS_BTCUR_BMBT_WASDEL   (1 << 0)                /* was delayed */
-#define        XFS_BTCUR_BMBT_INVALID_OWNER    (1 << 1)                /* for ext swap */
-               } bc_ino;
-       };                              /* per-btree type data */
+               struct xfs_btree_cur_ag bc_ag;
+               struct xfs_btree_cur_ino bc_ino;
+       };
 } xfs_btree_cur_t;
 
 /* cursor flags */