forked from mirrors/linux
		
	init: add an init_unlink helper
Add a simple helper to unlink with a kernel space file name and switch the early init code over to it. Remove the now unused ksys_unlink. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
		
							parent
							
								
									09267defa3
								
							
						
					
					
						commit
						8fb9f73e5a
					
				
					 7 changed files with 12 additions and 12 deletions
				
			
		|  | @ -37,3 +37,8 @@ int __init init_umount(const char *name, int flags) | ||||||
| 		return ret; | 		return ret; | ||||||
| 	return path_umount(&path, flags); | 	return path_umount(&path, flags); | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | int __init init_unlink(const char *pathname) | ||||||
|  | { | ||||||
|  | 	return do_unlinkat(AT_FDCWD, getname_kernel(pathname)); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -3,3 +3,4 @@ | ||||||
| int __init init_mount(const char *dev_name, const char *dir_name, | int __init init_mount(const char *dev_name, const char *dir_name, | ||||||
| 		const char *type_page, unsigned long flags, void *data_page); | 		const char *type_page, unsigned long flags, void *data_page); | ||||||
| int __init init_umount(const char *name, int flags); | int __init init_umount(const char *name, int flags); | ||||||
|  | int __init init_unlink(const char *pathname); | ||||||
|  |  | ||||||
|  | @ -1273,13 +1273,6 @@ int compat_ksys_ipc(u32 call, int first, int second, | ||||||
|  * The following kernel syscall equivalents are just wrappers to fs-internal |  * The following kernel syscall equivalents are just wrappers to fs-internal | ||||||
|  * functions. Therefore, provide stubs to be inlined at the callsites. |  * functions. Therefore, provide stubs to be inlined at the callsites. | ||||||
|  */ |  */ | ||||||
| extern long do_unlinkat(int dfd, struct filename *name); |  | ||||||
| 
 |  | ||||||
| static inline long ksys_unlink(const char __user *pathname) |  | ||||||
| { |  | ||||||
| 	return do_unlinkat(AT_FDCWD, getname(pathname)); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| long do_rmdir(int dfd, struct filename *name); | long do_rmdir(int dfd, struct filename *name); | ||||||
| 
 | 
 | ||||||
| static inline long ksys_rmdir(const char __user *pathname) | static inline long ksys_rmdir(const char __user *pathname) | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ extern int root_mountflags; | ||||||
| 
 | 
 | ||||||
| static inline __init int create_dev(char *name, dev_t dev) | static inline __init int create_dev(char *name, dev_t dev) | ||||||
| { | { | ||||||
| 	ksys_unlink(name); | 	init_unlink(name); | ||||||
| 	return ksys_mknod(name, S_IFBLK|0600, new_encode_dev(dev)); | 	return ksys_mknod(name, S_IFBLK|0600, new_encode_dev(dev)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -137,11 +137,11 @@ bool __init initrd_load(void) | ||||||
| 		 * mounted in the normal path. | 		 * mounted in the normal path. | ||||||
| 		 */ | 		 */ | ||||||
| 		if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) { | 		if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) { | ||||||
| 			ksys_unlink("/initrd.image"); | 			init_unlink("/initrd.image"); | ||||||
| 			handle_initrd(); | 			handle_initrd(); | ||||||
| 			return true; | 			return true; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	ksys_unlink("/initrd.image"); | 	init_unlink("/initrd.image"); | ||||||
| 	return false; | 	return false; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -272,7 +272,7 @@ int __init rd_load_image(char *from) | ||||||
| 	fput(out_file); | 	fput(out_file); | ||||||
| out: | out: | ||||||
| 	kfree(buf); | 	kfree(buf); | ||||||
| 	ksys_unlink("/dev/ram"); | 	init_unlink("/dev/ram"); | ||||||
| 	return res; | 	return res; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ | ||||||
| #include <linux/file.h> | #include <linux/file.h> | ||||||
| #include <linux/memblock.h> | #include <linux/memblock.h> | ||||||
| #include <linux/namei.h> | #include <linux/namei.h> | ||||||
|  | #include <linux/init_syscalls.h> | ||||||
| 
 | 
 | ||||||
| static ssize_t __init xwrite(struct file *file, const char *p, size_t count, | static ssize_t __init xwrite(struct file *file, const char *p, size_t count, | ||||||
| 		loff_t *pos) | 		loff_t *pos) | ||||||
|  | @ -301,7 +302,7 @@ static void __init clean_path(char *path, umode_t fmode) | ||||||
| 		if (S_ISDIR(st.mode)) | 		if (S_ISDIR(st.mode)) | ||||||
| 			ksys_rmdir(path); | 			ksys_rmdir(path); | ||||||
| 		else | 		else | ||||||
| 			ksys_unlink(path); | 			init_unlink(path); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Christoph Hellwig
						Christoph Hellwig