vfs: add file_path() helper
Turn d_path(&file->f_path, ...); into file_path(file, ...); Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
		
					parent
					
						
							
								4bacc9c923
							
						
					
				
			
			
				commit
				
					
						9bf39ab2ad
					
				
			
		
					 16 changed files with 25 additions and 21 deletions
				
			
		|  | @ -67,15 +67,12 @@ static void print_task_path_n_nm(struct task_struct *tsk, char *buf) | |||
| 	mmput(mm); | ||||
| 
 | ||||
| 	if (exe_file) { | ||||
| 		path = exe_file->f_path; | ||||
| 		path_get(&exe_file->f_path); | ||||
| 		path_nm = file_path(exe_file, buf, 255); | ||||
| 		fput(exe_file); | ||||
| 		path_nm = d_path(&path, buf, 255); | ||||
| 		path_put(&path); | ||||
| 	} | ||||
| 
 | ||||
| done: | ||||
| 	pr_info("Path: %s\n", path_nm); | ||||
| 	pr_info("Path: %s\n", !IS_ERR(path_nm) ? path_nm : "?"); | ||||
| } | ||||
| 
 | ||||
| static void show_faulting_vma(unsigned long address, char *buf) | ||||
|  | @ -99,8 +96,7 @@ static void show_faulting_vma(unsigned long address, char *buf) | |||
| 	if (vma && (vma->vm_start <= address)) { | ||||
| 		struct file *file = vma->vm_file; | ||||
| 		if (file) { | ||||
| 			struct path *path = &file->f_path; | ||||
| 			nm = d_path(path, buf, PAGE_SIZE - 1); | ||||
| 			nm = file_path(file, buf, PAGE_SIZE - 1); | ||||
| 			inode = file_inode(vma->vm_file); | ||||
| 			dev = inode->i_sb->s_dev; | ||||
| 			ino = inode->i_ino; | ||||
|  |  | |||
|  | @ -136,7 +136,7 @@ void decode_address(char *buf, unsigned long address) | |||
| 				struct file *file = vma->vm_file; | ||||
| 
 | ||||
| 				if (file) { | ||||
| 					char *d_name = d_path(&file->f_path, _tmpbuf, | ||||
| 					char *d_name = file_path(file, _tmpbuf, | ||||
| 						      sizeof(_tmpbuf)); | ||||
| 					if (!IS_ERR(d_name)) | ||||
| 						name = d_name; | ||||
|  |  | |||
|  | @ -334,7 +334,7 @@ static void describe_addr(struct KBacktraceIterator *kbt, | |||
| 	} | ||||
| 
 | ||||
| 	if (vma->vm_file) { | ||||
| 		p = d_path(&vma->vm_file->f_path, buf, bufsize); | ||||
| 		p = file_path(vma->vm_file, buf, bufsize); | ||||
| 		if (IS_ERR(p)) | ||||
| 			p = "?"; | ||||
| 		name = kbasename(p); | ||||
|  |  | |||
|  | @ -56,7 +56,7 @@ static int notify_exec(struct mm_struct *mm) | |||
| 	if (exe_file == NULL) | ||||
| 		goto done_free; | ||||
| 
 | ||||
| 	path = d_path(&exe_file->f_path, buf, PAGE_SIZE); | ||||
| 	path = file_path(exe_file, buf, PAGE_SIZE); | ||||
| 	if (IS_ERR(path)) | ||||
| 		goto done_put; | ||||
| 
 | ||||
|  |  | |||
|  | @ -568,7 +568,7 @@ static ssize_t loop_attr_backing_file_show(struct loop_device *lo, char *buf) | |||
| 
 | ||||
| 	spin_lock_irq(&lo->lo_lock); | ||||
| 	if (lo->lo_backing_file) | ||||
| 		p = d_path(&lo->lo_backing_file->f_path, buf, PAGE_SIZE - 1); | ||||
| 		p = file_path(lo->lo_backing_file, buf, PAGE_SIZE - 1); | ||||
| 	spin_unlock_irq(&lo->lo_lock); | ||||
| 
 | ||||
| 	if (IS_ERR_OR_NULL(p)) | ||||
|  |  | |||
|  | @ -834,7 +834,7 @@ static void bitmap_file_kick(struct bitmap *bitmap) | |||
| 		if (bitmap->storage.file) { | ||||
| 			path = kmalloc(PAGE_SIZE, GFP_KERNEL); | ||||
| 			if (path) | ||||
| 				ptr = d_path(&bitmap->storage.file->f_path, | ||||
| 				ptr = file_path(bitmap->storage.file, | ||||
| 					     path, PAGE_SIZE); | ||||
| 
 | ||||
| 			printk(KERN_ALERT | ||||
|  |  | |||
|  | @ -5741,7 +5741,7 @@ static int get_bitmap_file(struct mddev *mddev, void __user * arg) | |||
| 	/* bitmap disabled, zero the first byte and copy out */ | ||||
| 	if (!mddev->bitmap_info.file) | ||||
| 		file->pathname[0] = '\0'; | ||||
| 	else if ((ptr = d_path(&mddev->bitmap_info.file->f_path, | ||||
| 	else if ((ptr = file_path(mddev->bitmap_info.file, | ||||
| 			       file->pathname, sizeof(file->pathname))), | ||||
| 		 IS_ERR(ptr)) | ||||
| 		err = PTR_ERR(ptr); | ||||
|  |  | |||
|  | @ -2936,7 +2936,7 @@ int fsg_common_create_lun(struct fsg_common *common, struct fsg_lun_config *cfg, | |||
| 	if (fsg_lun_is_open(lun)) { | ||||
| 		p = "(error)"; | ||||
| 		if (pathbuf) { | ||||
| 			p = d_path(&lun->filp->f_path, pathbuf, PATH_MAX); | ||||
| 			p = file_path(lun->filp, pathbuf, PATH_MAX); | ||||
| 			if (IS_ERR(p)) | ||||
| 				p = "(error)"; | ||||
| 		} | ||||
|  |  | |||
|  | @ -341,7 +341,7 @@ ssize_t fsg_show_file(struct fsg_lun *curlun, struct rw_semaphore *filesem, | |||
| 
 | ||||
| 	down_read(filesem); | ||||
| 	if (fsg_lun_is_open(curlun)) {	/* Get the complete pathname */ | ||||
| 		p = d_path(&curlun->filp->f_path, buf, PAGE_SIZE - 1); | ||||
| 		p = file_path(curlun->filp, buf, PAGE_SIZE - 1); | ||||
| 		if (IS_ERR(p)) | ||||
| 			rc = PTR_ERR(p); | ||||
| 		else { | ||||
|  |  | |||
|  | @ -1530,7 +1530,7 @@ static int fill_files_note(struct memelfnote *note) | |||
| 		file = vma->vm_file; | ||||
| 		if (!file) | ||||
| 			continue; | ||||
| 		filename = d_path(&file->f_path, name_curpos, remaining); | ||||
| 		filename = file_path(file, name_curpos, remaining); | ||||
| 		if (IS_ERR(filename)) { | ||||
| 			if (PTR_ERR(filename) == -ENAMETOOLONG) { | ||||
| 				vfree(data); | ||||
|  | @ -1540,7 +1540,7 @@ static int fill_files_note(struct memelfnote *note) | |||
| 			continue; | ||||
| 		} | ||||
| 
 | ||||
| 		/* d_path() fills at the end, move name down */ | ||||
| 		/* file_path() fills at the end, move name down */ | ||||
| 		/* n = strlen(filename) + 1: */ | ||||
| 		n = (name_curpos + remaining) - filename; | ||||
| 		remaining = filename - name_curpos; | ||||
|  |  | |||
|  | @ -138,7 +138,7 @@ static int cn_print_exe_file(struct core_name *cn) | |||
| 		goto put_exe_file; | ||||
| 	} | ||||
| 
 | ||||
| 	path = d_path(&exe_file->f_path, pathbuf, PATH_MAX); | ||||
| 	path = file_path(exe_file, pathbuf, PATH_MAX); | ||||
| 	if (IS_ERR(path)) { | ||||
| 		ret = PTR_ERR(path); | ||||
| 		goto free_buf; | ||||
|  |  | |||
|  | @ -449,7 +449,7 @@ void __ext4_error_file(struct file *file, const char *function, | |||
| 	es = EXT4_SB(inode->i_sb)->s_es; | ||||
| 	es->s_last_error_ino = cpu_to_le32(inode->i_ino); | ||||
| 	if (ext4_error_ratelimit(inode->i_sb)) { | ||||
| 		path = d_path(&(file->f_path), pathname, sizeof(pathname)); | ||||
| 		path = file_path(file, pathname, sizeof(pathname)); | ||||
| 		if (IS_ERR(path)) | ||||
| 			path = "(unknown)"; | ||||
| 		va_start(args, fmt); | ||||
|  |  | |||
|  | @ -823,6 +823,12 @@ int finish_no_open(struct file *file, struct dentry *dentry) | |||
| } | ||||
| EXPORT_SYMBOL(finish_no_open); | ||||
| 
 | ||||
| char *file_path(struct file *filp, char *buf, int buflen) | ||||
| { | ||||
| 	return d_path(&filp->f_path, buf, buflen); | ||||
| } | ||||
| EXPORT_SYMBOL(file_path); | ||||
| 
 | ||||
| /**
 | ||||
|  * vfs_open - open the file at the given path | ||||
|  * @path: path to open | ||||
|  |  | |||
|  | @ -2500,6 +2500,8 @@ extern struct file * open_exec(const char *); | |||
| extern int is_subdir(struct dentry *, struct dentry *); | ||||
| extern int path_is_under(struct path *, struct path *); | ||||
| 
 | ||||
| extern char *file_path(struct file *, char *, int); | ||||
| 
 | ||||
| #include <linux/err.h> | ||||
| 
 | ||||
| /* needed for stackable file system support */ | ||||
|  |  | |||
|  | @ -5791,7 +5791,7 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event) | |||
| 		 * need to add enough zero bytes after the string to handle | ||||
| 		 * the 64bit alignment we do later. | ||||
| 		 */ | ||||
| 		name = d_path(&file->f_path, buf, PATH_MAX - sizeof(u64)); | ||||
| 		name = file_path(file, buf, PATH_MAX - sizeof(u64)); | ||||
| 		if (IS_ERR(name)) { | ||||
| 			name = "//toolong"; | ||||
| 			goto cpy_name; | ||||
|  |  | |||
|  | @ -3724,7 +3724,7 @@ void print_vma_addr(char *prefix, unsigned long ip) | |||
| 		if (buf) { | ||||
| 			char *p; | ||||
| 
 | ||||
| 			p = d_path(&f->f_path, buf, PAGE_SIZE); | ||||
| 			p = file_path(f, buf, PAGE_SIZE); | ||||
| 			if (IS_ERR(p)) | ||||
| 				p = "?"; | ||||
| 			printk("%s%s[%lx+%lx]", prefix, kbasename(p), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Miklos Szeredi
				Miklos Szeredi