Regards, Kuan-Wei > Signed-off-by: MengEn Sun <mengensun@xxxxxxxxxxx> > Reviewed-by: YueHong Wu <yuehongwu@xxxxxxxxxxx> > Cc: Andrei Vagin <avagin@xxxxxxxxxx> > Cc: Joel Granados <joel.granados@xxxxxxxxxx> > Cc: Thomas Wei�Ÿschuh <linux@xxxxxxxxxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > --- > > kernel/ucount.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > --- a/kernel/ucount.c~ucounts-move-kfree-out-of-critical-zone-protected-by-ucounts_lock > +++ a/kernel/ucount.c > @@ -164,8 +164,8 @@ struct ucounts *get_ucounts(struct ucoun > struct ucounts *alloc_ucounts(struct user_namespace *ns, kuid_t uid) > { > struct hlist_head *hashent = ucounts_hashentry(ns, uid); > - struct ucounts *ucounts, *new; > bool wrapped; > + struct ucounts *ucounts, *new = NULL; > > spin_lock_irq(&ucounts_lock); > ucounts = find_ucounts(ns, uid, hashent); > @@ -182,17 +182,17 @@ struct ucounts *alloc_ucounts(struct use > > spin_lock_irq(&ucounts_lock); > ucounts = find_ucounts(ns, uid, hashent); > - if (ucounts) { > - kfree(new); > - } else { > + if (!ucounts) { > hlist_add_head(&new->node, hashent); > get_user_ns(new->ns); > spin_unlock_irq(&ucounts_lock); > return new; > } > } > + > wrapped = !get_ucounts_or_wrap(ucounts); > spin_unlock_irq(&ucounts_lock); > + kfree(new); > if (wrapped) { > put_ucounts(ucounts); > return NULL; > _ > > Patches currently in -mm which might be from mengensun@xxxxxxxxxxx are > > ucounts-move-kfree-out-of-critical-zone-protected-by-ucounts_lock.patch > >