diff options
Diffstat (limited to 'fs/xfs/xfs_inode.h')
| -rw-r--r-- | fs/xfs/xfs_inode.h | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index e1a411e08f00..f14c1de2549d 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -47,6 +47,7 @@ typedef struct xfs_inode {  	/* Extent information. */  	xfs_ifork_t		*i_afp;		/* attribute fork pointer */ +	xfs_ifork_t		*i_cowfp;	/* copy on write extents */  	xfs_ifork_t		i_df;		/* data fork */  	/* operations vectors */ @@ -65,6 +66,9 @@ typedef struct xfs_inode {  	struct xfs_icdinode	i_d;		/* most of ondisk inode */ +	xfs_extnum_t		i_cnextents;	/* # of extents in cow fork */ +	unsigned int		i_cformat;	/* format of cow fork */ +  	/* VFS inode */  	struct inode		i_vnode;	/* embedded VFS inode */  } xfs_inode_t; @@ -202,6 +206,11 @@ xfs_get_initial_prid(struct xfs_inode *dp)  	return XFS_PROJID_DEFAULT;  } +static inline bool xfs_is_reflink_inode(struct xfs_inode *ip) +{ +	return ip->i_d.di_flags2 & XFS_DIFLAG2_REFLINK; +} +  /*   * In-core inode flags.   */ @@ -216,6 +225,13 @@ xfs_get_initial_prid(struct xfs_inode *dp)  #define __XFS_IPINNED_BIT	8	 /* wakeup key for zero pin count */  #define XFS_IPINNED		(1 << __XFS_IPINNED_BIT)  #define XFS_IDONTCACHE		(1 << 9) /* don't cache the inode long term */ +#define XFS_IEOFBLOCKS		(1 << 10)/* has the preallocblocks tag set */ +/* + * If this unlinked inode is in the middle of recovery, don't let drop_inode + * truncate and free the inode.  This can happen if we iget the inode during + * log recovery to replay a bmap operation on the inode. + */ +#define XFS_IRECOVERY		(1 << 11)  /*   * Per-lifetime flags need to be reset when re-using a reclaimable inode during @@ -410,6 +426,7 @@ int		xfs_iflush(struct xfs_inode *, struct xfs_buf **);  void		xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint);  xfs_extlen_t	xfs_get_extsz_hint(struct xfs_inode *ip); +xfs_extlen_t	xfs_get_cowextsz_hint(struct xfs_inode *ip);  int		xfs_dir_ialloc(struct xfs_trans **, struct xfs_inode *, umode_t,  			       xfs_nlink_t, xfs_dev_t, prid_t, int, @@ -473,4 +490,7 @@ do { \  extern struct kmem_zone	*xfs_inode_zone; +/* The default CoW extent size hint. */ +#define XFS_DEFAULT_COWEXTSZ_HINT 32 +  #endif	/* __XFS_INODE_H__ */ |