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");
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;
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;
__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);
*/
static inline bool new_mount_api(void)
{
- __do_close int fd;
+ __do_close int fd = -EBADF;
static int supported = -1;
if (supported == -1) {