summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--fs/ext2/super.c6
-rw-r--r--fs/jfs/super.c4
-rw-r--r--fs/quota/dquot.c3
-rw-r--r--fs/super.c3
-rw-r--r--fs/udf/super.c6
-rw-r--r--fs/ufs/super.c6
-rw-r--r--include/linux/quotaops.h9
7 files changed, 22 insertions, 15 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index b9b77c3e7ae0..df752b71b869 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1065,6 +1065,12 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
 	sb->s_op = &ext2_sops;
 	sb->s_export_op = &ext2_export_ops;
 	sb->s_xattr = ext2_xattr_handlers;
+
+#ifdef CONFIG_QUOTA
+	sb->dq_op = &dquot_operations;
+	sb->s_qcop = &vfs_quotactl_ops;
+#endif
+
 	root = ext2_iget(sb, EXT2_ROOT_INO);
 	if (IS_ERR(root)) {
 		ret = PTR_ERR(root);
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index 7d940a3a3d93..2e7ec5e8cda4 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -481,6 +481,10 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
 	 */
 	sb->s_op = &jfs_super_operations;
 	sb->s_export_op = &jfs_export_operations;
+#ifdef CONFIG_QUOTA
+	sb->dq_op = &dquot_operations;
+	sb->s_qcop = &vfs_quotactl_ops;
+#endif
 
 	/*
 	 * Initialize direct-mapping inode/address-space
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index b84422657f6d..9ba526e3f719 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -1847,6 +1847,7 @@ const struct dquot_operations dquot_operations = {
 	.alloc_dquot	= dquot_alloc,
 	.destroy_dquot	= dquot_destroy,
 };
+EXPORT_SYMBOL(dquot_operations);
 
 /*
  * Generic helper for ->open on filesystems supporting disk quotas.
@@ -2491,7 +2492,7 @@ const struct quotactl_ops vfs_quotactl_ops = {
 	.get_dqblk	= vfs_get_dqblk,
 	.set_dqblk	= vfs_set_dqblk
 };
-
+EXPORT_SYMBOL(vfs_quotactl_ops);
 
 static int do_proc_dqstats(struct ctl_table *table, int write,
 		     void __user *buffer, size_t *lenp, loff_t *ppos)
diff --git a/fs/super.c b/fs/super.c
index 05f62e5d464d..af9fd02185aa 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -24,7 +24,6 @@
 #include <linux/slab.h>
 #include <linux/acct.h>
 #include <linux/blkdev.h>
-#include <linux/quotaops.h>
 #include <linux/mount.h>
 #include <linux/security.h>
 #include <linux/writeback.h>		/* for the emergency remount stuff */
@@ -94,8 +93,6 @@ static struct super_block *alloc_super(struct file_system_type *type)
 		init_rwsem(&s->s_dquot.dqptr_sem);
 		init_waitqueue_head(&s->s_wait_unfrozen);
 		s->s_maxbytes = MAX_NON_LFS;
-		s->dq_op = sb_dquot_ops;
-		s->s_qcop = sb_quotactl_ops;
 		s->s_op = &default_op;
 		s->s_time_gran = 1000000000;
 	}
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 76a61566f299..ef9221b7456e 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -1948,7 +1948,11 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
 	/* Fill in the rest of the superblock */
 	sb->s_op = &udf_sb_ops;
 	sb->s_export_op = &udf_export_ops;
-	sb->dq_op = NULL;
+#ifdef CONFIG_QUOTA
+	sb->s_qcop = &vfs_quotactl_ops;
+	sb->dq_op = NULL; /* &dquot_operations */
+#endif
+
 	sb->s_dirt = 0;
 	sb->s_magic = UDF_SUPER_MAGIC;
 	sb->s_time_gran = 1000;
diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index d3977c7128e3..60c989b7012f 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -1045,7 +1045,11 @@ magic_found:
 	 */
 	sb->s_op = &ufs_super_ops;
 	sb->s_export_op = &ufs_export_ops;
-	sb->dq_op = NULL; /***/
+#ifdef CONFIG_QUOTA
+	sb->s_qcop = &vfs_quotactl_ops;
+	sb->dq_op = NULL; /* &dquot_operations */
+#endif
+
 	sb->s_magic = fs32_to_cpu(sb, usb3->fs_magic);
 
 	uspi->s_sblkno = fs32_to_cpu(sb, usb1->fs_sblkno);
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
index a6592ddc349f..84b8dbf59c03 100644
--- a/include/linux/quotaops.h
+++ b/include/linux/quotaops.h
@@ -153,9 +153,6 @@ static inline unsigned sb_any_quota_active(struct super_block *sb)
 extern const struct dquot_operations dquot_operations;
 extern const struct quotactl_ops vfs_quotactl_ops;
 
-#define sb_dquot_ops (&dquot_operations)
-#define sb_quotactl_ops (&vfs_quotactl_ops)
-
 #else
 
 static inline int sb_has_quota_usage_enabled(struct super_block *sb, int type)
@@ -199,12 +196,6 @@ static inline int sb_any_quota_active(struct super_block *sb)
 	return 0;
 }
 
-/*
- * NO-OP when quota not configured.
- */
-#define sb_dquot_ops				(NULL)
-#define sb_quotactl_ops				(NULL)
-
 static inline void dquot_initialize(struct inode *inode)
 {
 }