Re: [PATCH] xenbus: Use proc_create_mount_point() to create /proc/xen

From: Seth Forshee
Date: Tue Aug 30 2016 - 11:02:55 EST


On Tue, Aug 30, 2016 at 04:48:08PM +0200, Juergen Gross wrote:
> On 29/08/16 17:03, Seth Forshee wrote:
> > Mounting proc in user namespace containers fails if the xenbus
> > filesystem is mounted on /proc/xen because this directory fails
> > the "permanently empty" test. proc_create_mount_point() exists
> > specifically to create such mountpoints in proc but is currently
> > proc-internal. Export this interface to modules, then use it in
> > xenbus when creating /proc/xen.
> >
> > Signed-off-by: Seth Forshee <seth.forshee@xxxxxxxxxxxxx>
> > ---
> > drivers/xen/xenbus/xenbus_probe.c | 2 +-
> > fs/proc/generic.c | 1 +
> > fs/proc/internal.h | 1 -
> > include/linux/proc_fs.h | 2 ++
> > 4 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
> > index 33a31cfef55d..b5c1dec4a7c2 100644
> > --- a/drivers/xen/xenbus/xenbus_probe.c
> > +++ b/drivers/xen/xenbus/xenbus_probe.c
> > @@ -826,7 +826,7 @@ static int __init xenbus_init(void)
> > * Create xenfs mountpoint in /proc for compatibility with
> > * utilities that expect to find "xenbus" under "/proc/xen".
> > */
> > - proc_mkdir("xen", NULL);
> > + proc_create_mount_point("xen");
> > #endif
> >
> > out_error:
> > diff --git a/fs/proc/generic.c b/fs/proc/generic.c
> > index c633476616e0..be014c544d50 100644
> > --- a/fs/proc/generic.c
> > +++ b/fs/proc/generic.c
> > @@ -477,6 +477,7 @@ struct proc_dir_entry *proc_create_mount_point(const char *name)
> > }
> > return ent;
> > }
> > +EXPORT_SYMBOL(proc_create_mount_point);
>
> EXPORT_SYMBOL_GPL()?

Other similar sorts of calls in proc (proc_mkdir in particular) are
EXPORT_SYMBOL, so I guessed this one should follow suit. But if it
should be EXPORT_SYMOBL_GPL then that's fine too.

Thanks,
Seth