diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-05-19 07:16:40 -0400 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2010-05-24 14:06:39 +0200 |
commit | c79d967de3741ceb60c5bbbf1b6f97eab9a89838 (patch) | |
tree | 5494e7b504cffb0ddc6942d1542c2b4a472207ed /fs/super.c | |
parent | eea7feb072f5914ecafa95b3d83be0c229244d90 (diff) | |
download | lwn-c79d967de3741ceb60c5bbbf1b6f97eab9a89838.tar.gz lwn-c79d967de3741ceb60c5bbbf1b6f97eab9a89838.zip |
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/super.c')
-rw-r--r-- | fs/super.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/fs/super.c b/fs/super.c index 69688b15f1fa..a38e6e9b6f69 100644 --- a/fs/super.c +++ b/fs/super.c @@ -524,7 +524,7 @@ rescan: int do_remount_sb(struct super_block *sb, int flags, void *data, int force) { int retval; - int remount_rw, remount_ro; + int remount_ro; if (sb->s_frozen != SB_UNFROZEN) return -EBUSY; @@ -540,7 +540,6 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force) sync_filesystem(sb); remount_ro = (flags & MS_RDONLY) && !(sb->s_flags & MS_RDONLY); - remount_rw = !(flags & MS_RDONLY) && (sb->s_flags & MS_RDONLY); /* If we are remounting RDONLY and current sb is read/write, make sure there are no rw files opened */ @@ -549,9 +548,6 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force) mark_files_ro(sb); else if (!fs_may_remount_ro(sb)) return -EBUSY; - retval = vfs_dq_off(sb, 1); - if (retval < 0 && retval != -ENOSYS) - return -EBUSY; } if (sb->s_op->remount_fs) { @@ -560,8 +556,7 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force) return retval; } sb->s_flags = (sb->s_flags & ~MS_RMT_MASK) | (flags & MS_RMT_MASK); - if (remount_rw) - vfs_dq_quota_on_remount(sb); + /* * Some filesystems modify their metadata via some other path than the * bdev buffer cache (eg. use a private mapping, or directories in |