Re: [PATCH 09/26] xfs: make XFS_DQUOT_CLUSTER_SIZE_FSB part of the ondisk format

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

 



On Wednesday 15 July 2020 7:21:33 AM IST Darrick xJ. Wong wrote:
> From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> 
> Move the dquot cluster size #define to xfs_format.h.  It is an important
> part of the ondisk format because the ondisk dquot record size is not an
> even power of two, which means that the buffer size we use is
> significant here because the kernel leaves slack space at the end of the
> buffer to avoid having to deal with a dquot record crossing a block
> boundary.
> 
> This is also an excuse to fix one of the longstanding discrepancies
> between kernel and userspace libxfs headers.

The changes look good to me.

Reviewed-by: Chandan Babu R <chandanrlinux@xxxxxxxxx>

> 
> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxx>
> ---
>  fs/xfs/libxfs/xfs_format.h |   16 ++++++++++++++++
>  fs/xfs/xfs_qm.h            |   11 -----------
>  2 files changed, 16 insertions(+), 11 deletions(-)
> 
> 
> diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
> index 79fbabeb476c..76d34b77031a 100644
> --- a/fs/xfs/libxfs/xfs_format.h
> +++ b/fs/xfs/libxfs/xfs_format.h
> @@ -1209,6 +1209,22 @@ typedef struct xfs_dqblk {
>  
>  #define XFS_DQUOT_CRC_OFF	offsetof(struct xfs_dqblk, dd_crc)
>  
> +/*
> + * This defines the unit of allocation of dquots.
> + *
> + * Currently, it is just one file system block, and a 4K blk contains 30
> + * (136 * 30 = 4080) dquots. It's probably not worth trying to make
> + * this more dynamic.
> + *
> + * However, if this number is changed, we have to make sure that we don't
> + * implicitly assume that we do allocations in chunks of a single filesystem
> + * block in the dquot/xqm code.
> + *
> + * This is part of the ondisk format because the structure size is not a power
> + * of two, which leaves slack at the end of the disk block.
> + */
> +#define XFS_DQUOT_CLUSTER_SIZE_FSB	(xfs_filblks_t)1
> +
>  /*
>   * Remote symlink format and access functions.
>   */
> diff --git a/fs/xfs/xfs_qm.h b/fs/xfs/xfs_qm.h
> index 27789272da95..c5d0716b378e 100644
> --- a/fs/xfs/xfs_qm.h
> +++ b/fs/xfs/xfs_qm.h
> @@ -30,17 +30,6 @@ extern struct kmem_zone	*xfs_qm_dqtrxzone;
>  	!dqp->q_core.d_rtbcount && \
>  	!dqp->q_core.d_icount)
>  
> -/*
> - * This defines the unit of allocation of dquots.
> - * Currently, it is just one file system block, and a 4K blk contains 30
> - * (136 * 30 = 4080) dquots. It's probably not worth trying to make
> - * this more dynamic.
> - * XXXsup However, if this number is changed, we have to make sure that we don't
> - * implicitly assume that we do allocations in chunks of a single filesystem
> - * block in the dquot/xqm code.
> - */
> -#define XFS_DQUOT_CLUSTER_SIZE_FSB	(xfs_filblks_t)1
> -
>  /* Defaults for each quota type: time limits, warn limits, usage limits */
>  struct xfs_def_quota {
>  	time64_t	btimelimit;	/* limit for blks timer */
> 
> 


-- 
chandan






[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