GFS2: Hook gfs2_quota_sync into VFS via gfs2_quotactl_ops
authorSteven Whitehouse <swhiteho@redhat.com>
Tue, 15 Sep 2009 08:59:02 +0000 (09:59 +0100)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 3 Dec 2009 11:49:09 +0000 (11:49 +0000)
The plan is to add further operations to the gfs2_quotactl_ops
in future patches. The sync operation is easy, so we start with
that one.

We plan to use the XFS quota control functions because they more
closely match the GFS2 ones.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/Kconfig
fs/gfs2/ops_fstype.c
fs/gfs2/quota.c
fs/gfs2/quota.h

index 5971359d2090d2107f6b96c27255c39c08420ea4..4dcddf83326f45f7dd874587ef915b7844d60b0b 100644 (file)
@@ -8,6 +8,8 @@ config GFS2_FS
        select FS_POSIX_ACL
        select CRC32
        select SLOW_WORK
+       select QUOTA
+       select QUOTACTL
        help
          A cluster filesystem.
 
index e5ee06231ae59dab670a76530b31c37720b8c86a..36b11cba57e39f38b1621eefa01938bf03bcaed0 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/mount.h>
 #include <linux/gfs2_ondisk.h>
 #include <linux/slow-work.h>
+#include <linux/quotaops.h>
 
 #include "gfs2.h"
 #include "incore.h"
@@ -1138,6 +1139,8 @@ static int fill_super(struct super_block *sb, struct gfs2_args *args, int silent
        sb->s_op = &gfs2_super_ops;
        sb->s_export_op = &gfs2_export_ops;
        sb->s_xattr = gfs2_xattr_handlers;
+       sb->s_qcop = &gfs2_quotactl_ops;
+       sb_dqopt(sb)->flags |= DQUOT_QUOTA_SYS_FILE;
        sb->s_time_gran = 1;
        sb->s_maxbytes = MAX_LFS_FILESIZE;
 
index ed9e1971b2cdda697bf96863885e8b67aba7f41c..73a43cee0ea38a5f83d0c287aa35e71ff4454498 100644 (file)
@@ -1378,3 +1378,7 @@ int gfs2_quotad(void *data)
        return 0;
 }
 
+const struct quotactl_ops gfs2_quotactl_ops = {
+       .quota_sync     = gfs2_quota_sync,
+};
+
index 437afa77663fa1c5da9f7c75aafde3c2cfc67a1f..025d15ba24c0cb623e9af97fea490faa46aa809d 100644 (file)
@@ -50,5 +50,6 @@ static inline int gfs2_quota_lock_check(struct gfs2_inode *ip)
 }
 
 extern int gfs2_shrink_qd_memory(int nr, gfp_t gfp_mask);
+extern const struct quotactl_ops gfs2_quotactl_ops;
 
 #endif /* __QUOTA_DOT_H__ */