summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-08-07 06:23:41 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2014-08-07 14:40:08 -0400
commit215752fce31c80f3b3a1530bc7cddb3ba6a69b3a (patch)
tree70274a8d3ba397085593cf98be126a376f9221bf /fs
parent54a4d58a6459a93fc6ee898354b3d2ffb80dd03a (diff)
acct: get rid of acct_list
Put these suckers on per-vfsmount and per-superblock lists instead. Note: right now it's still acct_lock for everything, but that's going to change. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r--fs/mount.h1
-rw-r--r--fs/namespace.c2
-rw-r--r--fs/super.c2
3 files changed, 3 insertions, 2 deletions
diff --git a/fs/mount.h b/fs/mount.h
index d55297f2fa0..0a2d1458681 100644
--- a/fs/mount.h
+++ b/fs/mount.h
@@ -56,6 +56,7 @@ struct mount {
int mnt_group_id; /* peer group identifier */
int mnt_expiry_mark; /* true if marked for expiry */
int mnt_pinned;
+ struct hlist_head mnt_pins;
struct path mnt_ex_mountpoint;
};
diff --git a/fs/namespace.c b/fs/namespace.c
index 182bc41cd88..22e530addfa 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -956,7 +956,7 @@ put_again:
mnt->mnt_pinned = 0;
rcu_read_unlock();
unlock_mount_hash();
- acct_auto_close_mnt(&mnt->mnt);
+ acct_auto_close_mnt(&mnt->mnt_pins);
goto put_again;
}
if (unlikely(mnt->mnt.mnt_flags & MNT_DOOMED)) {
diff --git a/fs/super.c b/fs/super.c
index d20d5b11ded..52ed93eb63d 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -703,7 +703,7 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force)
#endif
if (flags & MS_RDONLY)
- acct_auto_close(sb);
+ acct_auto_close(&sb->s_pins);
shrink_dcache_sb(sb);
remount_ro = (flags & MS_RDONLY) && !(sb->s_flags & MS_RDONLY);