|
@@ -141,25 +141,12 @@ static inline const char *get_task_state(struct task_struct *tsk)
|
|
|
return task_state_array[task_state_index(tsk)];
|
|
|
}
|
|
|
|
|
|
-static inline int get_task_umask(struct task_struct *tsk)
|
|
|
-{
|
|
|
- struct fs_struct *fs;
|
|
|
- int umask = -ENOENT;
|
|
|
-
|
|
|
- task_lock(tsk);
|
|
|
- fs = tsk->fs;
|
|
|
- if (fs)
|
|
|
- umask = fs->umask;
|
|
|
- task_unlock(tsk);
|
|
|
- return umask;
|
|
|
-}
|
|
|
-
|
|
|
static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
|
|
|
struct pid *pid, struct task_struct *p)
|
|
|
{
|
|
|
struct user_namespace *user_ns = seq_user_ns(m);
|
|
|
struct group_info *group_info;
|
|
|
- int g, umask;
|
|
|
+ int g, umask = -1;
|
|
|
struct task_struct *tracer;
|
|
|
const struct cred *cred;
|
|
|
pid_t ppid, tpid = 0, tgid, ngid;
|
|
@@ -177,16 +164,16 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
|
|
|
ngid = task_numa_group_id(p);
|
|
|
cred = get_task_cred(p);
|
|
|
|
|
|
- umask = get_task_umask(p);
|
|
|
- if (umask >= 0)
|
|
|
- seq_printf(m, "Umask:\t%#04o\n", umask);
|
|
|
-
|
|
|
task_lock(p);
|
|
|
+ if (p->fs)
|
|
|
+ umask = p->fs->umask;
|
|
|
if (p->files)
|
|
|
max_fds = files_fdtable(p->files)->max_fds;
|
|
|
task_unlock(p);
|
|
|
rcu_read_unlock();
|
|
|
|
|
|
+ if (umask >= 0)
|
|
|
+ seq_printf(m, "Umask:\t%#04o\n", umask);
|
|
|
seq_printf(m, "State:\t%s", get_task_state(p));
|
|
|
|
|
|
seq_put_decimal_ull(m, "\nTgid:\t", tgid);
|