@@ -95,6 +95,9 @@ extern void dissolve_on_fput(struct vfsmount *);
int fsopen_cf_get(const struct configfd_context *cfc,
struct configfd_param *p);
+extern int do_reconfigure_mnt(struct path *path, unsigned int mnt_flags);
+extern struct file *open_detached_copy(struct path *path, bool recursive);
+
/*
* fs_struct.c
*/
@@ -2318,7 +2318,7 @@ static int do_loopback(struct path *path, const char *old_name,
return err;
}
-static struct file *open_detached_copy(struct path *path, bool recursive)
+struct file *open_detached_copy(struct path *path, bool recursive)
{
struct user_namespace *user_ns = current->nsproxy->mnt_ns->user_ns;
struct mnt_namespace *ns = alloc_mnt_ns(user_ns, true);
@@ -2494,7 +2494,7 @@ static void mnt_warn_timestamp_expiry(struct path *mountpoint, struct vfsmount *
* superblock it refers to. This is triggered by specifying MS_REMOUNT|MS_BIND
* to mount(2).
*/
-static int do_reconfigure_mnt(struct path *path, unsigned int mnt_flags)
+int do_reconfigure_mnt(struct path *path, unsigned int mnt_flags)
{
struct super_block *sb = path->mnt->mnt_sb;
struct mount *mnt = real_mount(path->mnt);
These are needed for the forthcoming bind configure type to work. Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> --- fs/internal.h | 3 +++ fs/namespace.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-)