Commit 5e787dbf authored by Dominik Brodowski's avatar Dominik Brodowski

devtmpfs: use do_mount() instead of ksys_mount()

In devtmpfs, do_mount() can be called directly instead of complex wrapping
by ksys_mount():
- the first and third arguments are const strings in the kernel,
  and do not need to be copied over from userspace;
- the fifth argument is NULL, and therefore no page needs to be
  copied over from userspace;
- the second and fourth argument are passed through anyway.
Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent ae4b064e
...@@ -359,7 +359,7 @@ static int handle_remove(const char *nodename, struct device *dev) ...@@ -359,7 +359,7 @@ static int handle_remove(const char *nodename, struct device *dev)
* If configured, or requested by the commandline, devtmpfs will be * If configured, or requested by the commandline, devtmpfs will be
* auto-mounted after the kernel mounted the root filesystem. * auto-mounted after the kernel mounted the root filesystem.
*/ */
int devtmpfs_mount(const char *mntdir) int devtmpfs_mount(void)
{ {
int err; int err;
...@@ -369,7 +369,7 @@ int devtmpfs_mount(const char *mntdir) ...@@ -369,7 +369,7 @@ int devtmpfs_mount(const char *mntdir)
if (!thread) if (!thread)
return 0; return 0;
err = ksys_mount("devtmpfs", mntdir, "devtmpfs", MS_SILENT, NULL); err = do_mount("devtmpfs", "dev", "devtmpfs", MS_SILENT, NULL);
if (err) if (err)
printk(KERN_INFO "devtmpfs: error mounting %i\n", err); printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
else else
...@@ -394,7 +394,7 @@ static int devtmpfsd(void *p) ...@@ -394,7 +394,7 @@ static int devtmpfsd(void *p)
*err = ksys_unshare(CLONE_NEWNS); *err = ksys_unshare(CLONE_NEWNS);
if (*err) if (*err)
goto out; goto out;
*err = ksys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, NULL); *err = do_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, NULL);
if (*err) if (*err)
goto out; goto out;
ksys_chdir("/.."); /* will traverse into overmounted root */ ksys_chdir("/.."); /* will traverse into overmounted root */
......
...@@ -1666,11 +1666,11 @@ extern bool kill_device(struct device *dev); ...@@ -1666,11 +1666,11 @@ extern bool kill_device(struct device *dev);
#ifdef CONFIG_DEVTMPFS #ifdef CONFIG_DEVTMPFS
extern int devtmpfs_create_node(struct device *dev); extern int devtmpfs_create_node(struct device *dev);
extern int devtmpfs_delete_node(struct device *dev); extern int devtmpfs_delete_node(struct device *dev);
extern int devtmpfs_mount(const char *mntdir); extern int devtmpfs_mount(void);
#else #else
static inline int devtmpfs_create_node(struct device *dev) { return 0; } static inline int devtmpfs_create_node(struct device *dev) { return 0; }
static inline int devtmpfs_delete_node(struct device *dev) { return 0; } static inline int devtmpfs_delete_node(struct device *dev) { return 0; }
static inline int devtmpfs_mount(const char *mountpoint) { return 0; } static inline int devtmpfs_mount(void) { return 0; }
#endif #endif
/* drivers/base/power/shutdown.c */ /* drivers/base/power/shutdown.c */
......
...@@ -670,7 +670,7 @@ void __init prepare_namespace(void) ...@@ -670,7 +670,7 @@ void __init prepare_namespace(void)
mount_root(); mount_root();
out: out:
devtmpfs_mount("dev"); devtmpfs_mount();
ksys_mount(".", "/", NULL, MS_MOVE, NULL); ksys_mount(".", "/", NULL, MS_MOVE, NULL);
ksys_chroot("."); ksys_chroot(".");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment