Loading fs/proc/base.c +9 −0 Original line number Diff line number Diff line Loading @@ -1621,6 +1621,15 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags) return 0; } int pid_delete_dentry(const struct dentry *dentry) { /* Is the task we represent dead? * If so, then don't put the dentry on the lru list, * kill it immediately. */ return !proc_pid(dentry->d_inode)->tasks[PIDTYPE_PID].first; } const struct dentry_operations pid_dentry_operations = { .d_revalidate = pid_revalidate, Loading fs/proc/internal.h +5 −9 Original line number Diff line number Diff line Loading @@ -114,15 +114,6 @@ static inline int task_dumpable(struct task_struct *task) return 0; } static inline int pid_delete_dentry(const struct dentry * dentry) { /* Is the task we represent dead? * If so, then don't put the dentry on the lru list, * kill it immediately. */ return !proc_pid(dentry->d_inode)->tasks[PIDTYPE_PID].first; } static inline unsigned name_to_int(struct dentry *dentry) { const char *name = dentry->d_name.name; Loading @@ -145,6 +136,11 @@ static inline unsigned name_to_int(struct dentry *dentry) return ~0U; } /* * base.c */ extern int pid_delete_dentry(const struct dentry *); struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *ino, struct dentry *dentry); int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent, Loading Loading
fs/proc/base.c +9 −0 Original line number Diff line number Diff line Loading @@ -1621,6 +1621,15 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags) return 0; } int pid_delete_dentry(const struct dentry *dentry) { /* Is the task we represent dead? * If so, then don't put the dentry on the lru list, * kill it immediately. */ return !proc_pid(dentry->d_inode)->tasks[PIDTYPE_PID].first; } const struct dentry_operations pid_dentry_operations = { .d_revalidate = pid_revalidate, Loading
fs/proc/internal.h +5 −9 Original line number Diff line number Diff line Loading @@ -114,15 +114,6 @@ static inline int task_dumpable(struct task_struct *task) return 0; } static inline int pid_delete_dentry(const struct dentry * dentry) { /* Is the task we represent dead? * If so, then don't put the dentry on the lru list, * kill it immediately. */ return !proc_pid(dentry->d_inode)->tasks[PIDTYPE_PID].first; } static inline unsigned name_to_int(struct dentry *dentry) { const char *name = dentry->d_name.name; Loading @@ -145,6 +136,11 @@ static inline unsigned name_to_int(struct dentry *dentry) return ~0U; } /* * base.c */ extern int pid_delete_dentry(const struct dentry *); struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *ino, struct dentry *dentry); int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent, Loading