aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jfs/super.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2010-05-19 07:16:40 -0400
committerJan Kara <jack@suse.cz>2010-05-24 08:06:39 -0400
commitc79d967de3741ceb60c5bbbf1b6f97eab9a89838 (patch)
tree5494e7b504cffb0ddc6942d1542c2b4a472207ed /fs/jfs/super.c
parenteea7feb072f5914ecafa95b3d83be0c229244d90 (diff)
quota: move remount handling into the filesystem
Currently do_remount_sb calls into the dquot code to tell it about going from rw to ro and ro to rw. Move this code into the filesystem to not depend on the dquot code in the VFS - note ocfs2 already ignores these calls and handles remount by itself. This gets rid of overloading the quotactl calls and allows to unify the VFS and XFS codepaths in that area later. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/jfs/super.c')
-rw-r--r--fs/jfs/super.c10
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();