Re: [PATCH 7/8] cgroup: mount cgroupns-root when inside non-init cgroupns
From: Serge Hallyn <hidden>
Date: 2015-12-07 15:53:09
Also in:
cgroups, lkml
From: Serge Hallyn <hidden>
Date: 2015-12-07 15:53:09
Also in:
cgroups, lkml
Quoting Tejun Heo (tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org):
Hello, Serge. On Thu, Dec 03, 2015 at 04:47:06PM -0600, Serge E. Hallyn wrote: ...quoted
+ dentry = dget(sb->s_root); + if (!kn->parent) // this is the root + return dentry; + + knparent = find_kn_ancestor_below(kn, NULL); + BUG_ON(!knparent);Doing WARN_ON() and returning failure is better, I think. Failing ns mount is an okay failure mode and a lot better than crashing the system.
Ok - this shouldn't be user-triggerable, so if it happens it really is a bug in our code, but I'll change it,
Also, how about find_next_ancestor() for the name of the function?
Yeah it's static anyway :) will change, squash, and resend the set.
quoted
+ do { + struct dentry *dtmp; + struct kernfs_node *kntmp; + + if (kn == knparent) + return dentry; + kntmp = find_kn_ancestor_below(kn, knparent); + BUG_ON(!kntmp); + dtmp = lookup_one_len(kntmp->name, dentry, strlen(kntmp->name)); + dput(dentry); + if (IS_ERR(dtmp)) + return dtmp; + knparent = kntmp; + dentry = dtmp; + } while (1);Other than the nitpicks, looks good to me. Thanks. -- tejun