On Thu, Feb 10, 2022 at 08:13:18PM -0600, "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> wrote: > diff --git a/kernel/cred.c b/kernel/cred.c > index 473d17c431f3..933155c96922 100644 > --- a/kernel/cred.c > +++ b/kernel/cred.c > @@ -665,21 +665,16 @@ EXPORT_SYMBOL(cred_fscmp); > > int set_cred_ucounts(struct cred *new) > { > - struct task_struct *task = current; > - const struct cred *old = task->real_cred; > struct ucounts *new_ucounts, *old_ucounts = new->ucounts; > > - if (new->user == old->user && new->user_ns == old->user_ns) > - return 0; > - > /* > * This optimization is needed because alloc_ucounts() uses locks > * for table lookups. > */ > - if (old_ucounts->ns == new->user_ns && uid_eq(old_ucounts->uid, new->euid)) > + if (old_ucounts->ns == new->user_ns && uid_eq(old_ucounts->uid, new->uid)) > return 0; > > - if (!(new_ucounts = alloc_ucounts(new->user_ns, new->euid))) > + if (!(new_ucounts = alloc_ucounts(new->user_ns, new->uid))) > return -EAGAIN; > > new->ucounts = new_ucounts; Reviewed-by: Michal Koutný <mkoutny@xxxxxxxx>