]> git.proxmox.com Git - mirror_lxc.git/commitdiff
Merge pull request #3660 from brauner/2021-02-05/fixes_1
authorStéphane Graber <stgraber@ubuntu.com>
Fri, 5 Feb 2021 22:01:39 +0000 (17:01 -0500)
committerGitHub <noreply@github.com>
Fri, 5 Feb 2021 22:01:39 +0000 (17:01 -0500)
mount_utils: initialize fd

src/lxc/attach.c
src/lxc/mount_utils.c
src/lxc/mount_utils.h

index c0c668bd50c0ffb2676b77c61f3bf74498286431..f705f552b5ad00606343dc8d4b2300333e7349a9 100644 (file)
@@ -734,7 +734,7 @@ int lxc_attach_remount_sys_proc(void)
        if (ret < 0)
                return log_error_errno(-1, errno, "Failed to unmount /proc");
 
-       ret = mount_filesystem("proc", "/proc", 0);
+       ret = mount("none", "/proc", "proc", 0, NULL);
        if (ret < 0)
                return log_error_errno(-1, errno, "Failed to remount /proc");
 
@@ -747,7 +747,7 @@ int lxc_attach_remount_sys_proc(void)
                return log_error_errno(-1, errno, "Failed to unmount /sys");
 
        /* Remount it. */
-       if (ret == 0 && mount_filesystem("sysfs", "/sys", 0))
+       if (ret == 0 && mount("none", "/sys", "sysfs", 0, NULL))
                return log_error_errno(-1, errno, "Failed to remount /sys");
 
        return 0;
index 363c0756a28ab4e09cb170a38b4c4adca35d6e3c..c72a1d67734352b1c3385b0d41f4b11d67a8fd2b 100644 (file)
@@ -116,30 +116,6 @@ int mnt_attributes_old(unsigned int new_flags, unsigned int *old_flags)
        return new_flags;
 }
 
-int mount_filesystem(const char *fs_name, const char *path, unsigned int attr_flags)
-{
-       __do_close int fsfd = -EBADF;
-       unsigned int old_flags = 0;
-
-       fsfd = fsopen(fs_name, FSOPEN_CLOEXEC);
-       if (fsfd >= 0) {
-               __do_close int mfd = -EBADF;
-
-               if (fsconfig(fsfd, FSCONFIG_CMD_CREATE, NULL, NULL, 0))
-                       return -1;
-
-               mfd = fsmount(fsfd, FSMOUNT_CLOEXEC, attr_flags);
-               if (mfd < 0)
-                       return -1;
-
-               return move_mount(mfd, "", AT_FDCWD, path, MOVE_MOUNT_F_EMPTY_PATH);
-       }
-
-       TRACE("Falling back to old mount api");
-       mnt_attributes_old(attr_flags, &old_flags);
-       return mount("none", path, fs_name, old_flags, NULL);
-}
-
 static int __fs_prepare(const char *fs_name, int fd_from)
 {
        __do_close int fd_fs = -EBADF;
index d704bfe1d6159be615f6799da5b0203a2d3195e6..54c941e13274ea1c25bb2a9cd725ba2d9bac0328 100644 (file)
@@ -156,8 +156,6 @@ __hidden extern int mnt_attributes_new(unsigned int old_flags, unsigned int *new
 
 __hidden extern int mnt_attributes_old(unsigned int new_flags, unsigned int *old_flags);
 
-__hidden extern int mount_filesystem(const char *fs_name, const char *path, unsigned int attr_flags);
-
 __hidden extern int fs_prepare(const char *fs_name, int dfd_from,
                               const char *path_from, __u64 o_flags_from,
                               __u64 resolve_flags_from);
@@ -195,7 +193,7 @@ __hidden extern int fd_bind_mount(int dfd_from, const char *path_from,
  */
 static inline bool new_mount_api(void)
 {
-       __do_close int fd;
+       __do_close int fd = -EBADF;
        static int supported = -1;
 
        if (supported == -1) {