xref: /linux/init/do_mounts.h (revision 6e7fd890f1d6ac83805409e9c346240de2705584)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <linux/kernel.h>
3 #include <linux/blkdev.h>
4 #include <linux/init.h>
5 #include <linux/syscalls.h>
6 #include <linux/unistd.h>
7 #include <linux/slab.h>
8 #include <linux/mount.h>
9 #include <linux/major.h>
10 #include <linux/root_dev.h>
11 #include <linux/init_syscalls.h>
12 #include <linux/task_work.h>
13 #include <linux/file.h>
14 
15 void  mount_root_generic(char *name, char *pretty_name, int flags);
16 void  mount_root(char *root_device_name);
17 extern int root_mountflags;
18 
19 static inline __init int create_dev(char *name, dev_t dev)
20 {
21 	init_unlink(name);
22 	return init_mknod(name, S_IFBLK | 0600, new_encode_dev(dev));
23 }
24 
25 #ifdef CONFIG_BLK_DEV_RAM
26 
27 int __init rd_load_disk(int n);
28 int __init rd_load_image(char *from);
29 
30 #else
31 
32 static inline int rd_load_disk(int n) { return 0; }
33 static inline int rd_load_image(char *from) { return 0; }
34 
35 #endif
36 
37 #ifdef CONFIG_BLK_DEV_INITRD
38 bool __init initrd_load(char *root_device_name);
39 #else
40 static inline bool initrd_load(char *root_device_name)
41 {
42 	return false;
43 	}
44 
45 #endif
46 
47 /* Ensure that async file closing finished to prevent spurious errors. */
48 static inline void init_flush_fput(void)
49 {
50 	flush_delayed_fput();
51 	task_work_run();
52 }
53