Message ID | 159477789339.3263162.3626376647868941894.stgit@magnolia (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | xfs: remove xfs_disk_quot from incore dquot | expand |
On Wednesday 15 July 2020 7:21:33 AM IST Darrick xJ. Wong wrote: > From: Darrick J. Wong <darrick.wong@oracle.com> > > 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@gmail.com> > > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> > --- > 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 */ > >
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 */