proc: Implement /proc/thread-self to point at the directory of the current thread
/proc/thread-self is derived from /proc/self. /proc/thread-self points to the directory in proc containing information about the current thread. This funtionality has been missing for a long time, and is tricky to implement in userspace as gettid() is not exported by glibc. More importantly this allows fixing defects in /proc/mounts and /proc/net where in a threaded application today they wind up being empty files when only the initial pthread has exited, causing problems for other threads. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
@@ -442,6 +442,7 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
|
||||
int proc_fill_super(struct super_block *s)
|
||||
{
|
||||
struct inode *root_inode;
|
||||
int ret;
|
||||
|
||||
s->s_flags |= MS_NODIRATIME | MS_NOSUID | MS_NOEXEC;
|
||||
s->s_blocksize = 1024;
|
||||
@@ -463,5 +464,9 @@ int proc_fill_super(struct super_block *s)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
return proc_setup_self(s);
|
||||
ret = proc_setup_self(s);
|
||||
if (ret) {
|
||||
return ret;
|
||||
}
|
||||
return proc_setup_thread_self(s);
|
||||
}
|
||||
|
Reference in New Issue
Block a user