mirror of https://gitee.com/openkylin/linux.git
initrd: use do_mount() instead of ksys_mount()
All three calls to ksys_mount() in initrd-related kernel code can be switched over to do_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
5e787dbf65
commit
d4440aac83
|
@ -54,7 +54,7 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
|
|||
ksys_dup(0);
|
||||
/* move initrd over / and chdir/chroot in initrd root */
|
||||
ksys_chdir("/root");
|
||||
ksys_mount(".", "/", NULL, MS_MOVE, NULL);
|
||||
do_mount(".", "/", NULL, MS_MOVE, NULL);
|
||||
ksys_chroot(".");
|
||||
ksys_setsid();
|
||||
return 0;
|
||||
|
@ -89,7 +89,7 @@ static void __init handle_initrd(void)
|
|||
current->flags &= ~PF_FREEZER_SKIP;
|
||||
|
||||
/* move initrd to rootfs' /old */
|
||||
ksys_mount("..", ".", NULL, MS_MOVE, NULL);
|
||||
do_mount("..", ".", NULL, MS_MOVE, NULL);
|
||||
/* switch root and cwd back to / of rootfs */
|
||||
ksys_chroot("..");
|
||||
|
||||
|
@ -103,7 +103,7 @@ static void __init handle_initrd(void)
|
|||
mount_root();
|
||||
|
||||
printk(KERN_NOTICE "Trying to move old root to /initrd ... ");
|
||||
error = ksys_mount("/old", "/root/initrd", NULL, MS_MOVE, NULL);
|
||||
error = do_mount("/old", "/root/initrd", NULL, MS_MOVE, NULL);
|
||||
if (!error)
|
||||
printk("okay\n");
|
||||
else {
|
||||
|
|
Loading…
Reference in New Issue