diff options
-rw-r--r-- | fs/ext2/super.c | 2 | ||||
-rw-r--r-- | fs/ext3/super.c | 2 | ||||
-rw-r--r-- | fs/ext4/super.c | 2 | ||||
-rw-r--r-- | fs/jfs/super.c | 2 | ||||
-rw-r--r-- | fs/reiserfs/super.c | 2 | ||||
-rw-r--r-- | fs/super.c | 1 | ||||
-rw-r--r-- | fs/udf/super.c | 2 | ||||
-rw-r--r-- | fs/ufs/super.c | 2 | ||||
-rw-r--r-- | include/linux/quotaops.h | 15 |
9 files changed, 14 insertions, 16 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 318ebc58bb7b..b9b77c3e7ae0 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -119,6 +119,8 @@ static void ext2_put_super (struct super_block * sb) | |||
119 | int i; | 119 | int i; |
120 | struct ext2_sb_info *sbi = EXT2_SB(sb); | 120 | struct ext2_sb_info *sbi = EXT2_SB(sb); |
121 | 121 | ||
122 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
123 | |||
122 | if (sb->s_dirt) | 124 | if (sb->s_dirt) |
123 | ext2_write_super(sb); | 125 | ext2_write_super(sb); |
124 | 126 | ||
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 9d5e582b514a..b2f3715988ba 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -410,6 +410,8 @@ static void ext3_put_super (struct super_block * sb) | |||
410 | struct ext3_super_block *es = sbi->s_es; | 410 | struct ext3_super_block *es = sbi->s_es; |
411 | int i, err; | 411 | int i, err; |
412 | 412 | ||
413 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
414 | |||
413 | lock_kernel(); | 415 | lock_kernel(); |
414 | 416 | ||
415 | ext3_xattr_put_super(sb); | 417 | ext3_xattr_put_super(sb); |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 08d31101eb05..808aca3a22f5 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -645,6 +645,8 @@ static void ext4_put_super(struct super_block *sb) | |||
645 | struct ext4_super_block *es = sbi->s_es; | 645 | struct ext4_super_block *es = sbi->s_es; |
646 | int i, err; | 646 | int i, err; |
647 | 647 | ||
648 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
649 | |||
648 | flush_workqueue(sbi->dio_unwritten_wq); | 650 | flush_workqueue(sbi->dio_unwritten_wq); |
649 | destroy_workqueue(sbi->dio_unwritten_wq); | 651 | destroy_workqueue(sbi->dio_unwritten_wq); |
650 | 652 | ||
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index b8a07d4c108e..7d940a3a3d93 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -179,6 +179,8 @@ static void jfs_put_super(struct super_block *sb) | |||
179 | 179 | ||
180 | jfs_info("In jfs_put_super"); | 180 | jfs_info("In jfs_put_super"); |
181 | 181 | ||
182 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
183 | |||
182 | lock_kernel(); | 184 | lock_kernel(); |
183 | 185 | ||
184 | rc = jfs_umount(sb); | 186 | rc = jfs_umount(sb); |
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 5dad5a2707bc..08879af0af0d 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -466,6 +466,8 @@ static void reiserfs_put_super(struct super_block *s) | |||
466 | struct reiserfs_transaction_handle th; | 466 | struct reiserfs_transaction_handle th; |
467 | th.t_trans_id = 0; | 467 | th.t_trans_id = 0; |
468 | 468 | ||
469 | dquot_disable(s, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
470 | |||
469 | reiserfs_write_lock(s); | 471 | reiserfs_write_lock(s); |
470 | 472 | ||
471 | if (s->s_dirt) | 473 | if (s->s_dirt) |
diff --git a/fs/super.c b/fs/super.c index a38e6e9b6f69..05f62e5d464d 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -160,7 +160,6 @@ void deactivate_locked_super(struct super_block *s) | |||
160 | { | 160 | { |
161 | struct file_system_type *fs = s->s_type; | 161 | struct file_system_type *fs = s->s_type; |
162 | if (atomic_dec_and_test(&s->s_active)) { | 162 | if (atomic_dec_and_test(&s->s_active)) { |
163 | vfs_dq_off(s, 0); | ||
164 | fs->kill_sb(s); | 163 | fs->kill_sb(s); |
165 | put_filesystem(fs); | 164 | put_filesystem(fs); |
166 | put_super(s); | 165 | put_super(s); |
diff --git a/fs/udf/super.c b/fs/udf/super.c index b154c41a7a9a..76a61566f299 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -2102,6 +2102,8 @@ static void udf_put_super(struct super_block *sb) | |||
2102 | int i; | 2102 | int i; |
2103 | struct udf_sb_info *sbi; | 2103 | struct udf_sb_info *sbi; |
2104 | 2104 | ||
2105 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
2106 | |||
2105 | sbi = UDF_SB(sb); | 2107 | sbi = UDF_SB(sb); |
2106 | 2108 | ||
2107 | lock_kernel(); | 2109 | lock_kernel(); |
diff --git a/fs/ufs/super.c b/fs/ufs/super.c index 495fdc1df7eb..d3977c7128e3 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c | |||
@@ -1227,6 +1227,8 @@ static void ufs_put_super(struct super_block *sb) | |||
1227 | 1227 | ||
1228 | UFSD("ENTER\n"); | 1228 | UFSD("ENTER\n"); |
1229 | 1229 | ||
1230 | dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); | ||
1231 | |||
1230 | if (sb->s_dirt) | 1232 | if (sb->s_dirt) |
1231 | ufs_write_super(sb); | 1233 | ufs_write_super(sb); |
1232 | 1234 | ||
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index 811529241e33..cfa2abb1b6d1 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h | |||
@@ -156,16 +156,6 @@ extern const struct quotactl_ops vfs_quotactl_ops; | |||
156 | #define sb_dquot_ops (&dquot_operations) | 156 | #define sb_dquot_ops (&dquot_operations) |
157 | #define sb_quotactl_ops (&vfs_quotactl_ops) | 157 | #define sb_quotactl_ops (&vfs_quotactl_ops) |
158 | 158 | ||
159 | /* Cannot be called inside a transaction */ | ||
160 | static inline int vfs_dq_off(struct super_block *sb, int remount) | ||
161 | { | ||
162 | int ret = -ENOSYS; | ||
163 | |||
164 | if (sb->s_qcop && sb->s_qcop->quota_off) | ||
165 | ret = sb->s_qcop->quota_off(sb, -1, remount); | ||
166 | return ret; | ||
167 | } | ||
168 | |||
169 | #else | 159 | #else |
170 | 160 | ||
171 | static inline int sb_has_quota_usage_enabled(struct super_block *sb, int type) | 161 | static inline int sb_has_quota_usage_enabled(struct super_block *sb, int type) |
@@ -232,11 +222,6 @@ static inline void dquot_free_inode(const struct inode *inode) | |||
232 | { | 222 | { |
233 | } | 223 | } |
234 | 224 | ||
235 | static inline int vfs_dq_off(struct super_block *sb, int remount) | ||
236 | { | ||
237 | return 0; | ||
238 | } | ||
239 | |||
240 | static inline int dquot_transfer(struct inode *inode, struct iattr *iattr) | 225 | static inline int dquot_transfer(struct inode *inode, struct iattr *iattr) |
241 | { | 226 | { |
242 | return 0; | 227 | return 0; |