[PATCH 0/7] proc: Dentry flushing without proc_mnt

From: Eric W. Biederman
Date: Thu Feb 20 2020 - 15:48:31 EST



Just because it is less of a fundamental change and less testing I went
and looked at updating proc_flush_task to use a list as Al suggested.

If we can stand an sget/deactivate_super pair for every dentry we want
to invalidate I think I have something.

Comments from anyone will be appreciated I gave this some light testing
and the code is based on something similar already present in proc so
I think there is a high chance this code is correct but I could easily
be wrong.

Linus, does this approach look like something you can stand?

Eric

Eric W. Biederman (7):
proc: Rename in proc_inode rename sysctl_inodes sibling_inodes
proc: Generalize proc_sys_prune_dcache into proc_prune_siblings_dcache
proc: Mov rcu_read_(lock|unlock) in proc_prune_siblings_dcache
proc: Use d_invalidate in proc_prune_siblings_dcache
proc: Clear the pieces of proc_inode that proc_evict_inode cares about
proc: Use a list of inodes to flush from proc
proc: Ensure we see the exit of each process tid exactly once

fs/exec.c | 5 +--
fs/proc/base.c | 111 ++++++++++++++++--------------------------------
fs/proc/inode.c | 60 +++++++++++++++++++++++---
fs/proc/internal.h | 4 +-
fs/proc/proc_sysctl.c | 45 +++-----------------
include/linux/pid.h | 2 +
include/linux/proc_fs.h | 4 +-
kernel/exit.c | 4 +-
kernel/pid.c | 16 +++++++
9 files changed, 124 insertions(+), 127 deletions(-)