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; |
