Loading fs/proc/base.c +5 −3 Original line number Diff line number Diff line Loading @@ -343,7 +343,8 @@ static int proc_root_link(struct inode *inode, struct dentry **dentry, struct vf /* Same as proc_root_link, but this addionally tries to get fs from other * threads in the group */ static int proc_task_root_link(struct inode *inode, struct dentry **dentry, struct vfsmount **mnt) static int proc_task_root_link(struct inode *inode, struct dentry **dentry, struct vfsmount **mnt) { struct fs_struct *fs; int result = -ENOENT; Loading @@ -357,9 +358,10 @@ static int proc_task_root_link(struct inode *inode, struct dentry **dentry, stru } else { /* Try to get fs from other threads */ task_unlock(leader); struct task_struct *task = leader; read_lock(&tasklist_lock); if (pid_alive(task)) { if (pid_alive(leader)) { struct task_struct *task = leader; while ((task = next_thread(task)) != leader) { task_lock(task); fs = task->fs; Loading Loading
fs/proc/base.c +5 −3 Original line number Diff line number Diff line Loading @@ -343,7 +343,8 @@ static int proc_root_link(struct inode *inode, struct dentry **dentry, struct vf /* Same as proc_root_link, but this addionally tries to get fs from other * threads in the group */ static int proc_task_root_link(struct inode *inode, struct dentry **dentry, struct vfsmount **mnt) static int proc_task_root_link(struct inode *inode, struct dentry **dentry, struct vfsmount **mnt) { struct fs_struct *fs; int result = -ENOENT; Loading @@ -357,9 +358,10 @@ static int proc_task_root_link(struct inode *inode, struct dentry **dentry, stru } else { /* Try to get fs from other threads */ task_unlock(leader); struct task_struct *task = leader; read_lock(&tasklist_lock); if (pid_alive(task)) { if (pid_alive(leader)) { struct task_struct *task = leader; while ((task = next_thread(task)) != leader) { task_lock(task); fs = task->fs; Loading