summaryrefslogtreecommitdiff
path: root/fs/internal.h
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@redhat.com>2014-01-24 03:55:39 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-01-24 04:37:01 +0400
commitd855a4b79f49ea07d1827fc0591490a6a324148b (patch)
treef1169b0bc68f35548a3fd05c8b5da91814c38f8b /fs/internal.h
parentc986c14a6a88427946dc77d7018a81b95b3d41b6 (diff)
downloadlinux-d855a4b79f49ea07d1827fc0591490a6a324148b.tar.xz
proc: don't (ab)use ->group_leader in proc_task_readdir() paths
proc_task_readdir() does not really need "leader", first_tid() has to revalidate it anyway. Just pass proc_pid(inode) to first_tid() instead, it can do pid_task(PIDTYPE_PID) itself and read ->group_leader only if necessary. The patch also extracts the "inode is dead" code from pid_delete_dentry(dentry) into the new trivial helper, proc_inode_is_dead(inode), proc_task_readdir() uses it to return -ENOENT if this dir was removed. This is a bit racy, but the race is very inlikely and the getdents() after openndir() can see the empty "." + ".." dir only once. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Michal Hocko <mhocko@suse.cz> Cc: Sameer Nanda <snanda@chromium.org> Cc: Sergey Dyasly <dserrg@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/internal.h')
0 files changed, 0 insertions, 0 deletions