summaryrefslogtreecommitdiffstats
path: root/fs/file.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-08-08 19:08:20 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2014-10-09 08:38:53 +0200
commit9ea459e110df32e60a762f311f7939eaa879601d (patch)
tree3c25c8c4dbe1c21d92ab8e5a52b02c95453490d4 /fs/file.c
parentautofs - remove obsolete d_invalidate() from expire (diff)
downloadlinux-9ea459e110df32e60a762f311f7939eaa879601d.tar.xz
linux-9ea459e110df32e60a762f311f7939eaa879601d.zip
delayed mntput
On final mntput() we want fs shutdown to happen before return to userland; however, the only case where we want it happen right there (i.e. where task_work_add won't do) is MNT_INTERNAL victim. Those have to be fully synchronous - failure halfway through module init might count on having vfsmount killed right there. Fortunately, final mntput on MNT_INTERNAL vfsmounts happens on shallow stack. So we handle those synchronously and do an analog of delayed fput logics for everything else. As the result, we are guaranteed that fs shutdown will always happen on shallow stack. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/file.c')
0 files changed, 0 insertions, 0 deletions