init: add an init_mount helper
Like do_mount, but takes a kernel pointer for the destination path. Switch over the mounts in the init code and devtmpfs to it, which just happen to work due to the implicit set_fs(KERNEL_DS) during early init right now. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -395,16 +395,16 @@ static int __init do_mount_root(const char *name, const char *fs,
|
||||
int ret;
|
||||
|
||||
if (data) {
|
||||
/* do_mount() requires a full page as fifth argument */
|
||||
/* init_mount() requires a full page as fifth argument */
|
||||
p = alloc_page(GFP_KERNEL);
|
||||
if (!p)
|
||||
return -ENOMEM;
|
||||
data_page = page_address(p);
|
||||
/* zero-pad. do_mount() will make sure it's terminated */
|
||||
/* zero-pad. init_mount() will make sure it's terminated */
|
||||
strncpy(data_page, data, PAGE_SIZE);
|
||||
}
|
||||
|
||||
ret = do_mount(name, "/root", fs, flags, data_page);
|
||||
ret = init_mount(name, "/root", fs, flags, data_page);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
@@ -628,7 +628,7 @@ void __init prepare_namespace(void)
|
||||
mount_root();
|
||||
out:
|
||||
devtmpfs_mount();
|
||||
do_mount(".", "/", NULL, MS_MOVE, NULL);
|
||||
init_mount(".", "/", NULL, MS_MOVE, NULL);
|
||||
ksys_chroot(".");
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user