summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@gmail.com>2018-04-13 15:35:42 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2018-04-13 17:10:27 -0700
commit1da4d377f943fe4194ffb9fb9c26cc58fad4dd24 (patch)
treeaed9f3e163f7ecbe85351b92e32ba66a7301c97b /kernel
parenta9f2a846f0503e7d729f552e3ccfe2279010fe94 (diff)
downloadlinux-stable-1da4d377f943fe4194ffb9fb9c26cc58fad4dd24.tar.gz
linux-stable-1da4d377f943fe4194ffb9fb9c26cc58fad4dd24.tar.bz2
linux-stable-1da4d377f943fe4194ffb9fb9c26cc58fad4dd24.zip
proc: revalidate misc dentries
If module removes proc directory while another process pins it by chdir'ing to it, then subsequent recreation of proc entry and all entries down the tree will not be visible to any process until pinning process unchdir from directory and unpins everything. Steps to reproduce: proc_mkdir("aaa", NULL); proc_create("aaa/bbb", ...); chdir("/proc/aaa"); remove_proc_entry("aaa/bbb", NULL); remove_proc_entry("aaa", NULL); proc_mkdir("aaa", NULL); # inaccessible because "aaa" dentry still points # to the original "aaa". proc_create("aaa/bbb", ...); Fix is to implement ->d_revalidate and ->d_delete. Link: http://lkml.kernel.org/r/20180312201938.GA4871@avx2 Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions