Re: [PATCH V2 03/12] xfs: Introduce xfs_iext_max() helper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 26, 2021 at 05:15:32PM +0530, Chandan Babu R wrote:
> xfs_iext_max() returns the maximum number of extents possible for one of
> data, cow or attribute fork. This helper will be extended further in a
> future commit when maximum extent counts associated with data/attribute
> forks are increased.
> 
> Signed-off-by: Chandan Babu R <chandanrlinux@xxxxxxxxx>
> ---
>  fs/xfs/libxfs/xfs_bmap.c       | 9 ++++-----
>  fs/xfs/libxfs/xfs_inode_buf.c  | 8 +++-----
>  fs/xfs/libxfs/xfs_inode_fork.c | 6 +++---
>  fs/xfs/libxfs/xfs_inode_fork.h | 8 ++++++++
>  fs/xfs/scrub/inode_repair.c    | 2 +-
>  5 files changed, 19 insertions(+), 14 deletions(-)
> 

<snip>

> diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h
> index cf82be263b48..1eda2163603e 100644
> --- a/fs/xfs/libxfs/xfs_inode_fork.h
> +++ b/fs/xfs/libxfs/xfs_inode_fork.h
> @@ -133,6 +133,14 @@ static inline int8_t xfs_ifork_format(struct xfs_ifork *ifp)
>  	return ifp->if_format;
>  }
>  
> +static inline xfs_extnum_t xfs_iext_max(struct xfs_mount *mp, int whichfork)

xfs_iext_max_nextents() to go with the constants?  "max" on its own is a
little vague.  I /really/ like this getting cleaned up finally though.

> +{
> +	if (whichfork == XFS_DATA_FORK || whichfork == XFS_COW_FORK)
> +		return XFS_IFORK_EXTCNT_MAXS32;
> +	else
> +		return XFS_IFORK_EXTCNT_MAXS16;

No need for the 'else'.

--D

> +}
> +
>  struct xfs_ifork *xfs_ifork_alloc(enum xfs_dinode_fmt format,
>  				xfs_extnum_t nextents);
>  struct xfs_ifork *xfs_iext_state_to_fork(struct xfs_inode *ip, int state);
> diff --git a/fs/xfs/scrub/inode_repair.c b/fs/xfs/scrub/inode_repair.c
> index c44f8d06939b..a44d7b48c374 100644
> --- a/fs/xfs/scrub/inode_repair.c
> +++ b/fs/xfs/scrub/inode_repair.c
> @@ -1198,7 +1198,7 @@ xrep_inode_blockcounts(
>  			return error;
>  		if (count >= sc->mp->m_sb.sb_dblocks)
>  			return -EFSCORRUPTED;
> -		if (nextents >= XFS_IFORK_EXTCNT_MAXS16)
> +		if (nextents >= xfs_iext_max(sc->mp, XFS_ATTR_FORK))
>  			return -EFSCORRUPTED;
>  		ifp->if_nextents = nextents;
>  	} else {
> -- 
> 2.30.2
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux