diff options
author | Abhijith Das <adas@redhat.com> | 2011-02-04 12:40:58 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2011-02-04 12:40:58 +0100 |
commit | fa920711b4bbb9e61358a7f488f0a645ef221321 (patch) | |
tree | 03ee74b1635783a77ffa0873ee700dc424448927 /quotaio_xfs.c | |
parent | 1be8727ae92a78a5e7fde5ecc6c59740ca2eabe4 (diff) | |
download | linuxquota-fa920711b4bbb9e61358a7f488f0a645ef221321.tar.gz |
Implement quotacheck for GFS2
Although GFS2 maintains quota as metadata, it sometimes might need to
check quota usage (most notably when quota is enabled for the first time).
So add support for GFS2 in quotacheck.
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'quotaio_xfs.c')
-rw-r--r-- | quotaio_xfs.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/quotaio_xfs.c b/quotaio_xfs.c index 4729317..62075b5 100644 --- a/quotaio_xfs.c +++ b/quotaio_xfs.c @@ -151,7 +151,17 @@ static int xfs_commit_dquot(struct dquot *dquot, int flags) return 0; xfs_util2kerndqblk(&xdqblk, &dquot->dq_dqb); - xdqblk.d_fieldmask |= FS_DQ_LIMIT_MASK; + xdqblk.d_flags |= XFS_USRQUOTA(h) ? XFS_USER_QUOTA : XFS_GROUP_QUOTA; + xdqblk.d_id = id; + if (strcmp(h->qh_fstype, MNTTYPE_GFS2) == 0) { + if (flags & COMMIT_LIMITS) /* warn/limit */ + xdqblk.d_fieldmask |= FS_DQ_BSOFT | FS_DQ_BHARD; + if (flags & COMMIT_USAGE) /* block usage */ + xdqblk.d_fieldmask |= FS_DQ_BCOUNT; + } else { + xdqblk.d_fieldmask |= FS_DQ_LIMIT_MASK; + } + qcmd = QCMD(Q_XFS_SETQLIM, h->qh_type); if (quotactl(qcmd, h->qh_quotadev, id, (void *)&xdqblk) < 0) { ; |