Commit graph android_kernel_sony_sdm845/include/linux/fs_pin.h
Message SHA1
fs_pin: Allow for the possibility that m_list or s_list go unused.
This is needed to support lazily umounting locked mounts.  Because the
entire unmounted subtree needs to stay together until there are no
users with references to any part of the subtree.

To support this guarantee that the fs_pin m_list and s_list nodes
are initialized by initializing them in init_fs_pin allowing
for the possibility that pin_insert_group does not touch them.

Further use hlist_del_init in pin_remove so that there is
a hlist_unhashed test before the list we attempt to update
the previous list item.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>

Eric W. Biederman   commited 2015-04-09 11:39:55 -05:00
820f9f147d
new fs_pin killing logics
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro   commited 2015-01-25 23:17:28 -05:00
59eda0e07f
allow attaching fs_pin to a group not associated with some superblock
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro   commited 2015-01-25 23:17:28 -05:00
fdab684d72
take count and rcu_head out of fs_pin
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro   commited 2015-01-25 23:17:27 -05:00
34cece2e8a
kill pin_put()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro   commited 2015-01-25 23:16:28 -05:00
9e251d0204
take fs_pin stuff to fs/*
Add a new field to fs_pin - kill(pin).  That's what umount and r/o remount
will be calling for all pins attached to vfsmount and superblock resp.
Called after bumping the refcount, so it won't go away under us.  Dropping
the refcount is responsibility of the instance.  All generic stuff moved to
fs/fs_pin.c; the next step will rip all the knowledge of kernel/acct.c from
fs/super.c and fs/namespace.c.  After that - death to mnt_pin(); it was
intended to be usable as generic mechanism for code that wants to attach
objects to vfsmount, so that they would not make the sucker busy and
would get killed on umount.  Never got it right; it remained acct.c-specific
all along.  Now it's very close to being killable.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro   commited 2014-08-07 14:40:08 -04:00
efb170c228