Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: quota: Convert quota statistics to generic percpu_counter ext3 uses rb_node = NULL; to zero rb_root. quota: Fixup dquot_transfer reiserfs: Fix resuming of quotas on remount read-write pohmelfs: Remove dead quota code ufs: Remove dead quota code udf: Remove dead quota code quota: rename default quotactl methods to dquot_ quota: explicitly set ->dq_op and ->s_qcop quota: drop remount argument to ->quota_on and ->quota_off quota: move unmount handling into the filesystem quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers quota: move remount handling into the filesystem ocfs2: Fix use after free on remount read-only Fix up conflicts in fs/ext4/super.c and fs/ufs/file.c
This commit is contained in:
13
fs/super.c
13
fs/super.c
@@ -24,7 +24,6 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/acct.h>
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/quotaops.h>
|
||||
#include <linux/mount.h>
|
||||
#include <linux/security.h>
|
||||
#include <linux/writeback.h> /* for the emergency remount stuff */
|
||||
@@ -94,8 +93,6 @@ static struct super_block *alloc_super(struct file_system_type *type)
|
||||
init_rwsem(&s->s_dquot.dqptr_sem);
|
||||
init_waitqueue_head(&s->s_wait_unfrozen);
|
||||
s->s_maxbytes = MAX_NON_LFS;
|
||||
s->dq_op = sb_dquot_ops;
|
||||
s->s_qcop = sb_quotactl_ops;
|
||||
s->s_op = &default_op;
|
||||
s->s_time_gran = 1000000000;
|
||||
}
|
||||
@@ -160,7 +157,6 @@ void deactivate_locked_super(struct super_block *s)
|
||||
{
|
||||
struct file_system_type *fs = s->s_type;
|
||||
if (atomic_dec_and_test(&s->s_active)) {
|
||||
vfs_dq_off(s, 0);
|
||||
fs->kill_sb(s);
|
||||
put_filesystem(fs);
|
||||
put_super(s);
|
||||
@@ -524,7 +520,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 +536,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 +544,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 +552,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
|
||||
|
Reference in New Issue
Block a user