diff options
| -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 */ |