summaryrefslogtreecommitdiff
path: root/quotaio_xfs.c
diff options
context:
space:
mode:
authorAbhijith Das <adas@redhat.com>2011-02-04 12:40:58 +0100
committerJan Kara <jack@suse.cz>2011-02-04 12:40:58 +0100
commitfa920711b4bbb9e61358a7f488f0a645ef221321 (patch)
tree03ee74b1635783a77ffa0873ee700dc424448927 /quotaio_xfs.c
parent1be8727ae92a78a5e7fde5ecc6c59740ca2eabe4 (diff)
downloadlinuxquota-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.c12
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) {
;