mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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 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,
 | 
			
		||||
		const char *type_page, unsigned long flags, void *data_page);
 | 
			
		||||
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
 | 
			
		||||
 * 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);
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
{
 | 
			
		||||
	ksys_unlink(name);
 | 
			
		||||
	init_unlink(name);
 | 
			
		||||
	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.
 | 
			
		||||
		 */
 | 
			
		||||
		if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) {
 | 
			
		||||
			ksys_unlink("/initrd.image");
 | 
			
		||||
			init_unlink("/initrd.image");
 | 
			
		||||
			handle_initrd();
 | 
			
		||||
			return true;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	ksys_unlink("/initrd.image");
 | 
			
		||||
	init_unlink("/initrd.image");
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -272,7 +272,7 @@ int __init rd_load_image(char *from)
 | 
			
		|||
	fput(out_file);
 | 
			
		||||
out:
 | 
			
		||||
	kfree(buf);
 | 
			
		||||
	ksys_unlink("/dev/ram");
 | 
			
		||||
	init_unlink("/dev/ram");
 | 
			
		||||
	return res;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@
 | 
			
		|||
#include <linux/file.h>
 | 
			
		||||
#include <linux/memblock.h>
 | 
			
		||||
#include <linux/namei.h>
 | 
			
		||||
#include <linux/init_syscalls.h>
 | 
			
		||||
 | 
			
		||||
static ssize_t __init xwrite(struct file *file, const char *p, size_t count,
 | 
			
		||||
		loff_t *pos)
 | 
			
		||||
| 
						 | 
				
			
			@ -301,7 +302,7 @@ static void __init clean_path(char *path, umode_t fmode)
 | 
			
		|||
		if (S_ISDIR(st.mode))
 | 
			
		||||
			ksys_rmdir(path);
 | 
			
		||||
		else
 | 
			
		||||
			ksys_unlink(path);
 | 
			
		||||
			init_unlink(path);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue