diff options
author | Christoph Hellwig <hch@lst.de> | 2010-05-05 00:10:56 +0200 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2010-05-05 09:39:55 +0100 |
commit | ad6bb90f3401556469489f237cb08626d88703d2 (patch) | |
tree | 1736b515db4b5362d381e9829914c2a8bdad6533 /fs/gfs2 | |
parent | 5e687eac1bd31baed110d239ef827d3ba666f311 (diff) | |
download | linux-stable-ad6bb90f3401556469489f237cb08626d88703d2.tar.gz linux-stable-ad6bb90f3401556469489f237cb08626d88703d2.tar.bz2 linux-stable-ad6bb90f3401556469489f237cb08626d88703d2.zip |
GFS2: fix quota state reporting
We need to report both the accounting and enforcing flags if we are
in enforcing mode.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/quota.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index 6dbcbad6ab17..6ca0967ce6e7 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -1418,10 +1418,18 @@ static int gfs2_quota_get_xstate(struct super_block *sb, memset(fqs, 0, sizeof(struct fs_quota_stat)); fqs->qs_version = FS_QSTAT_VERSION; - if (sdp->sd_args.ar_quota == GFS2_QUOTA_ON) - fqs->qs_flags = (XFS_QUOTA_UDQ_ENFD | XFS_QUOTA_GDQ_ENFD); - else if (sdp->sd_args.ar_quota == GFS2_QUOTA_ACCOUNT) - fqs->qs_flags = (XFS_QUOTA_UDQ_ACCT | XFS_QUOTA_GDQ_ACCT); + + switch (sdp->sd_args.ar_quota) { + case GFS2_QUOTA_ON: + fqs->qs_flags |= (XFS_QUOTA_UDQ_ENFD | XFS_QUOTA_GDQ_ENFD); + /*FALLTHRU*/ + case GFS2_QUOTA_ACCOUNT: + fqs->qs_flags |= (XFS_QUOTA_UDQ_ACCT | XFS_QUOTA_GDQ_ACCT); + break; + case GFS2_QUOTA_OFF: + break; + } + if (sdp->sd_quota_inode) { fqs->qs_uquota.qfs_ino = GFS2_I(sdp->sd_quota_inode)->i_no_addr; fqs->qs_uquota.qfs_nblks = sdp->sd_quota_inode->i_blocks; |