quota: move remount handling into the filesystem
[linux-2.6-block.git] / fs / jfs / super.c
index b66832ac33ac5d5869d90084227a321174e0b95d..5329d66a970427cd5a421b11e387ee2e0d85043a 100644 (file)
@@ -396,10 +396,20 @@ static int jfs_remount(struct super_block *sb, int *flags, char *data)
 
                JFS_SBI(sb)->flag = flag;
                ret = jfs_mount_rw(sb, 1);
+
+               /* mark the fs r/w for quota activity */
+               sb->s_flags &= ~MS_RDONLY;
+
                unlock_kernel();
+               vfs_dq_quota_on_remount(sb);
                return ret;
        }
        if ((!(sb->s_flags & MS_RDONLY)) && (*flags & MS_RDONLY)) {
+               rc = vfs_dq_off(sb, 1);
+               if (rc < 0 && rc != -ENOSYS) {
+                       unlock_kernel();
+                       return -EBUSY;
+               }
                rc = jfs_umount_rw(sb);
                JFS_SBI(sb)->flag = flag;
                unlock_kernel();