diff options
| author | Dave Chinner <dchinner@redhat.com> | 2020-03-10 17:57:07 -0700 | 
|---|---|---|
| committer | Darrick J. Wong <darrick.wong@oracle.com> | 2020-03-13 10:37:14 -0700 | 
| commit | 68422d90dad4fe98f99d6e414aeec9a58d5185d5 (patch) | |
| tree | 31235b14d1b6cc3729bfc217ad43528e60311987 | |
| parent | 352890735e52343b1690f6d5d32224e2aa88a56a (diff) | |
xfs: make the btree cursor union members named structure
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>
| -rw-r--r-- | fs/xfs/libxfs/xfs_btree.h | 39 | 
1 files changed, 24 insertions, 15 deletions
diff --git a/fs/xfs/libxfs/xfs_btree.h b/fs/xfs/libxfs/xfs_btree.h index 12a2bc93371d..8fd458947320 100644 --- a/fs/xfs/libxfs/xfs_btree.h +++ b/fs/xfs/libxfs/xfs_btree.h @@ -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 */  | 
