summaryrefslogtreecommitdiffstats
path: root/fs/fs_pin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* fs_pin: Allow for the possibility that m_list or s_list go unused.Eric W. Biederman2015-04-091-2/+2
| | | | | | | | | | | | | | | | 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>
* switch the IO-triggering parts of umount to fs_pinAl Viro2015-01-261-1/+0
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* new fs_pin killing logicsAl Viro2015-01-261-6/+48
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* allow attaching fs_pin to a group not associated with some superblockAl Viro2015-01-261-7/+13
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* pull bumping refcount into ->kill()Al Viro2015-01-261-12/+0
| | | | | | | there will be one more change of ->kill() calling conventions; this isn't final. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* kill pin_put()Al Viro2015-01-261-11/+0
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* make fs/{namespace,super}.c forget about acct.hAl Viro2014-08-071-4/+5
| | | | | | | These externs belong in fs/internal.h. Rename (they are not acct-specific anymore) and move them over there. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* take fs_pin stuff to fs/*Al Viro2014-08-071-0/+77
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>