[PATCH -v2 1/3] xfs: change available ranges of softlimit and hardlimit in quota check

Mark Tinguely tinguely at sgi.com
Fri Feb 10 14:37:03 CST 2012


On 02/06/12 06:50, Mitsuo Hayasaka wrote:
> In general, quota allows us to use disk blocks and inodes up to each
> limit, that is, they are available if they don't exceed their limitations.
> Current xfs sets their available ranges to lower than them except disk
> inode quota check. So, this patch changes the ranges to not beyond them.
>
> Signed-off-by: Mitsuo Hayasaka<mitsuo.hayasaka.hu at hitachi.com>
> Cc: Ben Myers<bpm at sgi.com>
> Cc: Alex Elder<elder at kernel.org>
> Cc: Christoph Hellwig<hch at lst.de>
> ---
>
>   fs/xfs/xfs_dquot.c       |   24 ++++++++++++------------
>   fs/xfs/xfs_log_recover.c |    6 +++---
>   fs/xfs/xfs_qm_syscalls.c |    4 ++--
>   fs/xfs/xfs_trans_dquot.c |    4 ++--
>   4 files changed, 19 insertions(+), 19 deletions(-)
>
> diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c

> diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
> index eafbcff..711a86e 100644
> --- a/fs/xfs/xfs_qm_syscalls.c
> +++ b/fs/xfs/xfs_qm_syscalls.c
> @@ -813,11 +813,11 @@ xfs_qm_export_dquot(
>   	     (XFS_IS_OQUOTA_ENFORCED(mp)&&
>   			(dst->d_flags&  (FS_PROJ_QUOTA | FS_GROUP_QUOTA))))&&
>   	dst->d_id != 0) {
> -		if (((int) dst->d_bcount>= (int) dst->d_blk_softlimit)&&
> +		if (((int) dst->d_bcount>  (int) dst->d_blk_softlimit)&&
>   		(dst->d_blk_softlimit>  0)) {
>   			ASSERT(dst->d_btimer != 0);
>   		}
> -		if (((int) dst->d_icount>= (int) dst->d_ino_softlimit)&&
> +		if (((int) dst->d_icount>  (int) dst->d_ino_softlimit)&&
>   		(dst->d_ino_softlimit>  0)) {
>   			ASSERT(dst->d_itimer != 0);
>   		}

Good catch on the off by one page comparisons. I like the patch.

Question: I know this was like this before, but why is the 64 bit counts 
and limits being casted into integers for these tests inside the DEBUG?

--Mark Tinguely
   tinguely at sgi.com



More information about the xfs mailing list