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: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
parent
ae4b064e2a
commit
5e787dbf65
|
@ -359,7 +359,7 @@ static int handle_remove(const char *nodename, struct device *dev)
|
|||
* If configured, or requested by the commandline, devtmpfs will be
|
||||
* auto-mounted after the kernel mounted the root filesystem.
|
||||
*/
|
||||
int devtmpfs_mount(const char *mntdir)
|
||||
int devtmpfs_mount(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
|
@ -369,7 +369,7 @@ int devtmpfs_mount(const char *mntdir)
|
|||
if (!thread)
|
||||
return 0;
|
||||
|
||||
err = ksys_mount("devtmpfs", mntdir, "devtmpfs", MS_SILENT, NULL);
|
||||
err = do_mount("devtmpfs", "dev", "devtmpfs", MS_SILENT, NULL);
|
||||
if (err)
|
||||
printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
|
||||
else
|
||||
|
@ -394,7 +394,7 @@ static int devtmpfsd(void *p)
|
|||
*err = ksys_unshare(CLONE_NEWNS);
|
||||
if (*err)
|
||||
goto out;
|
||||
*err = ksys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, NULL);
|
||||
*err = do_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, NULL);
|
||||
if (*err)
|
||||
goto out;
|
||||
ksys_chdir("/.."); /* will traverse into overmounted root */
|
||||
|
|
|
@ -1666,11 +1666,11 @@ extern bool kill_device(struct device *dev);
|
|||
#ifdef CONFIG_DEVTMPFS
|
||||
extern int devtmpfs_create_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
|
||||
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_mount(const char *mountpoint) { return 0; }
|
||||
static inline int devtmpfs_mount(void) { return 0; }
|
||||
#endif
|
||||
|
||||
/* drivers/base/power/shutdown.c */
|
||||
|
|
|
@ -670,7 +670,7 @@ void __init prepare_namespace(void)
|
|||
|
||||
mount_root();
|
||||
out:
|
||||
devtmpfs_mount("dev");
|
||||
devtmpfs_mount();
|
||||
ksys_mount(".", "/", NULL, MS_MOVE, NULL);
|
||||
ksys_chroot(".");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue