xfs
[Top] [All Lists]

Re: no quota output if no usage?

To: Eric Sandeen <sandeen@xxxxxxxxxxx>
Subject: Re: no quota output if no usage?
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 27 Nov 2014 08:21:44 +1100
Cc: xfs-oss <xfs@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <5476297F.8080304@xxxxxxxxxxx>
References: <5476297F.8080304@xxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Nov 26, 2014 at 01:26:55PM -0600, Eric Sandeen wrote:
> This seems a bit weird:
> 
> # xfs_quota -x -c 'quota -p project1' /mnt/test
> #
> 
> Huh, did it work?
> 
> # xfs_quota -x -c 'quota -pv project1' /mnt/test
> Disk quotas for Project project1 (1)
> Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted 
> on
> /dev/sdc2                    0    1024000    1228800   00 [--------] /mnt/test
> #
> 
> Oh, ok!
> 
> I don't know why reporting limits should depend on the verbose flag, but it
> has been that way since 2005 in quota_mount() :
> 
>         if (!(flags & VERBOSE_FLAG)) {
>                 count = 0;
>                 if ((form & XFS_BLOCK_QUOTA) && d.d_bcount)
>                         count++;
>                 if ((form & XFS_INODE_QUOTA) && d.d_icount)
>                         count++;
>                 if ((form & XFS_RTBLOCK_QUOTA) && d.d_rtbcount)
>                         count++;
>                 if (!count)
>                         return 0;
>         }
> 
> I'm inclined to change it, but is it OK to change the output of this - might 
> old
> scripts be relying on this (odd) silent behavior?  I think it can certainly 
> cause
> confusion (as evidenced by at least one bug I'm looking at ...)

It's done that way because the quota lookup can find dquots that are
completely empty because there are no uid/gid/prid found in the
filesystem, but the dquot is allocated because it's within a block
that has in use dquots in it. I'd guess that if you queried a
non-existent project quota (e.g. prid 2) you'd get the same
result....

i.e. you've got to have inodes or blocks accounted to have a dquot
"created" for the uid/gid/prid in normal conditions, hence dquots
with zero counts are ignored by default as they are effectively
the same as unallocated dquots....

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>