diff options
Diffstat (limited to 'fs/jfs/super.c')
-rw-r--r-- | fs/jfs/super.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index b66832ac33ac..5329d66a9704 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -396,10 +396,20 @@ static int jfs_remount(struct super_block *sb, int *flags, char *data) | |||
396 | 396 | ||
397 | JFS_SBI(sb)->flag = flag; | 397 | JFS_SBI(sb)->flag = flag; |
398 | ret = jfs_mount_rw(sb, 1); | 398 | ret = jfs_mount_rw(sb, 1); |
399 | |||
400 | /* mark the fs r/w for quota activity */ | ||
401 | sb->s_flags &= ~MS_RDONLY; | ||
402 | |||
399 | unlock_kernel(); | 403 | unlock_kernel(); |
404 | vfs_dq_quota_on_remount(sb); | ||
400 | return ret; | 405 | return ret; |
401 | } | 406 | } |
402 | if ((!(sb->s_flags & MS_RDONLY)) && (*flags & MS_RDONLY)) { | 407 | if ((!(sb->s_flags & MS_RDONLY)) && (*flags & MS_RDONLY)) { |
408 | rc = vfs_dq_off(sb, 1); | ||
409 | if (rc < 0 && rc != -ENOSYS) { | ||
410 | unlock_kernel(); | ||
411 | return -EBUSY; | ||
412 | } | ||
403 | rc = jfs_umount_rw(sb); | 413 | rc = jfs_umount_rw(sb); |
404 | JFS_SBI(sb)->flag = flag; | 414 | JFS_SBI(sb)->flag = flag; |
405 | unlock_kernel(); | 415 | unlock_kernel(); |