> --- a/fs/namespace.c > +++ b/fs/namespace.c > @@ -1258,6 +1258,15 @@ struct vfsmount *fc_mount(struct fs_context *fc) > } > EXPORT_SYMBOL(fc_mount); > > +struct vfsmount *fc_mount_longterm(struct fs_context *fc) > +{ > + struct vfsmount *mnt = fc_mount(fc); > + if (!IS_ERR(mnt)) > + real_mount(mnt)->mnt_ns = MNT_NS_INTERNAL; > + return mnt; > +} > +EXPORT_SYMBOL(fc_mount_longterm); > + > struct vfsmount *vfs_kern_mount(struct file_system_type *type, > int flags, const char *name, > void *data) > diff --git a/include/linux/mount.h b/include/linux/mount.h > index dcc17ce8a959..9376d76dd61f 100644 > --- a/include/linux/mount.h > +++ b/include/linux/mount.h > @@ -94,6 +94,7 @@ int mnt_get_write_access(struct vfsmount *mnt); > void mnt_put_write_access(struct vfsmount *mnt); > > extern struct vfsmount *fc_mount(struct fs_context *fc); > +extern struct vfsmount *fc_mount_longterm(struct fs_context *fc); > extern struct vfsmount *vfs_create_mount(struct fs_context *fc); > extern struct vfsmount *vfs_kern_mount(struct file_system_type *type, > int flags, const char *name, > diff --git a/ipc/mqueue.c b/ipc/mqueue.c > index 35b4f8659904..daabf7f02b63 100644 > --- a/ipc/mqueue.c > +++ b/ipc/mqueue.c > @@ -482,7 +482,7 @@ static struct vfsmount *mq_create_mount(struct ipc_namespace *ns) > put_user_ns(fc->user_ns); > fc->user_ns = get_user_ns(ctx->ipc_ns->user_ns); > > - mnt = fc_mount(fc); > + mnt = fc_mount_longterm(fc); > put_fs_context(fc); > return mnt; > } All seems fine to me, Reviewed-by: Christian Brauner <brauner@xxxxxxxxxx>