The patch titled proc: Use struct pid not struct task_ref has been removed from the -mm tree. Its filename is proc-use-struct-pid-not-struct-task_ref.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: proc: Use struct pid not struct task_ref From: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> Incrementally update my proc-dont-lock-task_structs-indefinitely patches so that they work with struct pid instead of struct task_ref. Mostly this is a straight 1-1 substitution. Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- fs/proc/base.c | 8 ++++---- fs/proc/inode.c | 4 ++-- fs/proc/internal.h | 7 +++---- fs/proc/task_mmu.c | 4 ++-- include/linux/proc_fs.h | 4 ++-- kernel/cpuset.c | 11 +++++------ 6 files changed, 18 insertions(+), 20 deletions(-) diff -puN fs/proc/base.c~proc-use-struct-pid-not-struct-task_ref fs/proc/base.c --- a/fs/proc/base.c~proc-use-struct-pid-not-struct-task_ref +++ a/fs/proc/base.c @@ -951,7 +951,7 @@ static ssize_t proc_loginuid_write(struc if (!capable(CAP_AUDIT_CONTROL)) return -EPERM; - if (current != proc_tref(inode)->task) + if (current != pid_task(proc_pid(inode), PIDTYPE_PID)) return -EPERM; if (count >= PAGE_SIZE) @@ -1363,8 +1363,8 @@ static struct inode *proc_pid_make_inode /* * grab the reference to task. */ - ei->tref = tref_get_by_task(task); - if (!tref_task(ei->tref)) + ei->pid = get_pid(task->pids[PIDTYPE_PID].pid); + if (!ei->pid) goto out_unlock; inode->i_uid = 0; @@ -1482,7 +1482,7 @@ static int pid_delete_dentry(struct dent * If so, then don't put the dentry on the lru list, * kill it immediately. */ - return !proc_tref(dentry->d_inode)->task; + return !proc_pid(dentry->d_inode)->tasks[PIDTYPE_PID].first; } static struct dentry_operations tid_fd_dentry_operations = diff -puN fs/proc/inode.c~proc-use-struct-pid-not-struct-task_ref fs/proc/inode.c --- a/fs/proc/inode.c~proc-use-struct-pid-not-struct-task_ref +++ a/fs/proc/inode.c @@ -62,7 +62,7 @@ static void proc_delete_inode(struct ino truncate_inode_pages(&inode->i_data, 0); /* Stop tracking associated processes */ - tref_put(PROC_I(inode)->tref); + put_pid(PROC_I(inode)->pid); /* Let go of any associated proc directory entry */ de = PROC_I(inode)->pde; @@ -91,7 +91,7 @@ static struct inode *proc_alloc_inode(st ei = (struct proc_inode *)kmem_cache_alloc(proc_inode_cachep, SLAB_KERNEL); if (!ei) return NULL; - ei->tref = NULL; + ei->pid = NULL; ei->fd = 0; ei->op.proc_get_link = NULL; ei->pde = NULL; diff -puN fs/proc/internal.h~proc-use-struct-pid-not-struct-task_ref fs/proc/internal.h --- a/fs/proc/internal.h~proc-use-struct-pid-not-struct-task_ref +++ a/fs/proc/internal.h @@ -10,7 +10,6 @@ */ #include <linux/proc_fs.h> -#include <linux/task_ref.h> struct vmalloc_info { unsigned long used; @@ -51,14 +50,14 @@ void free_proc_entry(struct proc_dir_ent int proc_init_inodecache(void); -static inline struct task_ref *proc_tref(struct inode *inode) +static inline struct pid *proc_pid(struct inode *inode) { - return PROC_I(inode)->tref; + return PROC_I(inode)->pid; } static inline struct task_struct *get_proc_task(struct inode *inode) { - return get_tref_task(proc_tref(inode)); + return get_pid_task(proc_pid(inode), PIDTYPE_PID); } static inline int proc_fd(struct inode *inode) diff -puN fs/proc/task_mmu.c~proc-use-struct-pid-not-struct-task_ref fs/proc/task_mmu.c --- a/fs/proc/task_mmu.c~proc-use-struct-pid-not-struct-task_ref +++ a/fs/proc/task_mmu.c @@ -320,7 +320,7 @@ static void *m_start(struct seq_file *m, if (last_addr == -1UL) return NULL; - priv->task = get_tref_task(priv->tref); + priv->task = get_pid_task(priv->pid, PIDTYPE_PID); if (!priv->task) return NULL; @@ -416,7 +416,7 @@ static int do_maps_open(struct inode *in int ret = -ENOMEM; priv = kzalloc(sizeof(*priv), GFP_KERNEL); if (priv) { - priv->tref = proc_tref(inode); + priv->pid = proc_pid(inode); ret = seq_open(file, ops); if (!ret) { struct seq_file *m = file->private_data; diff -puN include/linux/proc_fs.h~proc-use-struct-pid-not-struct-task_ref include/linux/proc_fs.h --- a/include/linux/proc_fs.h~proc-use-struct-pid-not-struct-task_ref +++ a/include/linux/proc_fs.h @@ -246,7 +246,7 @@ extern void kclist_add(struct kcore_list #endif struct proc_inode { - struct task_ref *tref; + struct pid *pid; int fd; union { int (*proc_get_link)(struct inode *, struct dentry **, struct vfsmount **); @@ -267,7 +267,7 @@ static inline struct proc_dir_entry *PDE } struct proc_maps_private { - struct task_ref *tref; + struct pid *pid; struct task_struct *task; struct vm_area_struct *tail_vma; }; diff -puN kernel/cpuset.c~proc-use-struct-pid-not-struct-task_ref kernel/cpuset.c --- a/kernel/cpuset.c~proc-use-struct-pid-not-struct-task_ref +++ a/kernel/cpuset.c @@ -50,7 +50,6 @@ #include <linux/time.h> #include <linux/backing-dev.h> #include <linux/sort.h> -#include <linux/task_ref.h> #include <asm/uaccess.h> #include <asm/atomic.h> @@ -2443,7 +2442,7 @@ void __cpuset_memory_pressure_bump(void) */ static int proc_cpuset_show(struct seq_file *m, void *v) { - struct task_ref *tref; + struct pid *pid; struct task_struct *tsk; char *buf; int retval; @@ -2454,8 +2453,8 @@ static int proc_cpuset_show(struct seq_f goto out; retval = -ESRCH; - tref = m->private; - tsk = get_tref_task(tref); + pid = m->private; + tsk = get_pid_task(pid, PIDTYPE_PID); if (!tsk) goto out_free; @@ -2478,8 +2477,8 @@ out: static int cpuset_open(struct inode *inode, struct file *file) { - struct task_ref *tref = PROC_I(inode)->tref; - return single_open(file, proc_cpuset_show, tref); + struct pid *pid = PROC_I(inode)->pid; + return single_open(file, proc_cpuset_show, pid); } struct file_operations proc_cpuset_operations = { _ Patches currently in -mm which might be from ebiederm@xxxxxxxxxxxx are origin.patch powerpc-adding-the-use-of-the-firmware-soft-reset-nmi-to-kdump.patch proc-sysctl-add-_proc_do_string-helper.patch namespaces-add-nsproxy.patch namespaces-add-nsproxy-dont-include-compileh.patch namespaces-incorporate-fs-namespace-into-nsproxy.patch namespaces-utsname-introduce-temporary-helpers.patch namespaces-utsname-switch-to-using-uts-namespaces.patch namespaces-utsname-switch-to-using-uts-namespaces-alpha-fix.patch namespaces-utsname-switch-to-using-uts-namespaces-cleanup.patch namespaces-utsname-use-init_utsname-when-appropriate.patch namespaces-utsname-use-init_utsname-when-appropriate-cifs-update.patch namespaces-utsname-implement-utsname-namespaces.patch namespaces-utsname-implement-utsname-namespaces-export.patch namespaces-utsname-implement-utsname-namespaces-dont-include-compileh.patch namespaces-utsname-sysctl-hack.patch namespaces-utsname-sysctl-hack-cleanup.patch namespaces-utsname-sysctl-hack-cleanup-2.patch namespaces-utsname-sysctl-hack-cleanup-2-fix.patch namespaces-utsname-remove-system_utsname.patch namespaces-utsname-implement-clone_newuts-flag.patch uts-copy-nsproxy-only-when-needed.patch ipc-namespace-core-fix.patch ipc-namespace-core-unshare-fix.patch ipc-namespace-utils-compilation-fix.patch genirq-irq-document-what-an-irq-is.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html