diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-05-06 10:43:07 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:36:08 -0400 |
commit | bbd6851a3213a525128473e978b692ab6ac11aba (patch) | |
tree | 8ebddebadd8992871ab98456187cb00849a82058 /fs/super.c | |
parent | 6cfd0148425e528b859b26e436b01f23f6926224 (diff) |
Push lock_super() into the ->remount_fs() of filesystems that care about it
Note that since we can't run into contention between remount_fs and write_super
(due to exclusion on s_umount), we have to care only about filesystems that
touch lock_super() on their own. Out of those ext3, ext4, hpfs, sysv and ufs
do need it; fat doesn't since its ->remount_fs() only accesses assign-once
data (basically, it's "we have no atime on directories and only have atime on
files for vfat; force nodiratime and possibly noatime into *flags").
[folded a build fix from hch]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/super.c')
-rw-r--r-- | fs/super.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/fs/super.c b/fs/super.c index bdd7158b785e..2a49fed77453 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -556,9 +556,7 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force) | |||
556 | remount_rw = !(flags & MS_RDONLY) && (sb->s_flags & MS_RDONLY); | 556 | remount_rw = !(flags & MS_RDONLY) && (sb->s_flags & MS_RDONLY); |
557 | 557 | ||
558 | if (sb->s_op->remount_fs) { | 558 | if (sb->s_op->remount_fs) { |
559 | lock_super(sb); | ||
560 | retval = sb->s_op->remount_fs(sb, &flags, data); | 559 | retval = sb->s_op->remount_fs(sb, &flags, data); |
561 | unlock_super(sb); | ||
562 | if (retval) | 560 | if (retval) |
563 | return retval; | 561 | return retval; |
564 | } | 562 | } |