diff options
| author | Dominik Brodowski <linux@dominikbrodowski.net> | 2018-10-23 22:10:35 +0200 | 
|---|---|---|
| committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2019-12-12 14:49:57 +0100 | 
| commit | 5e787dbf659fe77d56215be74044f85e01b3920f (patch) | |
| tree | 2041ebfdeab6acf7e5bc4069f8d1905914ea4d86 | |
| parent | ae4b064e2a616b545acf02b8f50cc513b32c7522 (diff) | |
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>
| -rw-r--r-- | drivers/base/devtmpfs.c | 6 | ||||
| -rw-r--r-- | include/linux/device.h | 4 | ||||
| -rw-r--r-- | init/do_mounts.c | 2 | 
3 files changed, 6 insertions, 6 deletions
| diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 30d0523014e0..6cdbf1531238 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c @@ -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 */ diff --git a/include/linux/device.h b/include/linux/device.h index e226030c1df3..96ff76731e93 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -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 */ diff --git a/init/do_mounts.c b/init/do_mounts.c index af9cda887a23..43f6d098c880 100644 --- a/init/do_mounts.c +++ b/init/do_mounts.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(".");  } | 
