|
@@ -3018,11 +3018,11 @@ static const struct inode_operations proc_tgid_base_inode_operations = {
|
|
|
static void proc_flush_task_mnt(struct vfsmount *mnt, pid_t pid, pid_t tgid)
|
|
|
{
|
|
|
struct dentry *dentry, *leader, *dir;
|
|
|
- char buf[PROC_NUMBUF];
|
|
|
+ char buf[10 + 1];
|
|
|
struct qstr name;
|
|
|
|
|
|
name.name = buf;
|
|
|
- name.len = snprintf(buf, sizeof(buf), "%d", pid);
|
|
|
+ name.len = snprintf(buf, sizeof(buf), "%u", pid);
|
|
|
/* no ->d_hash() rejects on procfs */
|
|
|
dentry = d_hash_and_lookup(mnt->mnt_root, &name);
|
|
|
if (dentry) {
|
|
@@ -3034,7 +3034,7 @@ static void proc_flush_task_mnt(struct vfsmount *mnt, pid_t pid, pid_t tgid)
|
|
|
return;
|
|
|
|
|
|
name.name = buf;
|
|
|
- name.len = snprintf(buf, sizeof(buf), "%d", tgid);
|
|
|
+ name.len = snprintf(buf, sizeof(buf), "%u", tgid);
|
|
|
leader = d_hash_and_lookup(mnt->mnt_root, &name);
|
|
|
if (!leader)
|
|
|
goto out;
|
|
@@ -3046,7 +3046,7 @@ static void proc_flush_task_mnt(struct vfsmount *mnt, pid_t pid, pid_t tgid)
|
|
|
goto out_put_leader;
|
|
|
|
|
|
name.name = buf;
|
|
|
- name.len = snprintf(buf, sizeof(buf), "%d", pid);
|
|
|
+ name.len = snprintf(buf, sizeof(buf), "%u", pid);
|
|
|
dentry = d_hash_and_lookup(dir, &name);
|
|
|
if (dentry) {
|
|
|
d_invalidate(dentry);
|
|
@@ -3225,14 +3225,14 @@ int proc_pid_readdir(struct file *file, struct dir_context *ctx)
|
|
|
for (iter = next_tgid(ns, iter);
|
|
|
iter.task;
|
|
|
iter.tgid += 1, iter = next_tgid(ns, iter)) {
|
|
|
- char name[PROC_NUMBUF];
|
|
|
+ char name[10 + 1];
|
|
|
int len;
|
|
|
|
|
|
cond_resched();
|
|
|
if (!has_pid_permissions(ns, iter.task, HIDEPID_INVISIBLE))
|
|
|
continue;
|
|
|
|
|
|
- len = snprintf(name, sizeof(name), "%d", iter.tgid);
|
|
|
+ len = snprintf(name, sizeof(name), "%u", iter.tgid);
|
|
|
ctx->pos = iter.tgid + TGID_OFFSET;
|
|
|
if (!proc_fill_cache(file, ctx, name, len,
|
|
|
proc_pid_instantiate, iter.task, NULL)) {
|
|
@@ -3560,10 +3560,10 @@ static int proc_task_readdir(struct file *file, struct dir_context *ctx)
|
|
|
for (task = first_tid(proc_pid(inode), tid, ctx->pos - 2, ns);
|
|
|
task;
|
|
|
task = next_tid(task), ctx->pos++) {
|
|
|
- char name[PROC_NUMBUF];
|
|
|
+ char name[10 + 1];
|
|
|
int len;
|
|
|
tid = task_pid_nr_ns(task, ns);
|
|
|
- len = snprintf(name, sizeof(name), "%d", tid);
|
|
|
+ len = snprintf(name, sizeof(name), "%u", tid);
|
|
|
if (!proc_fill_cache(file, ctx, name, len,
|
|
|
proc_task_instantiate, task, NULL)) {
|
|
|
/* returning this tgid failed, save it as the first
|