mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	9p: remove unnecessary v9fses->options which duplicates the mount string
The mount options string is saved in sb->s_options. This patch removes the redundant duplicating of the mount options. Also, since we are not displaying anything special in show options, we replace v9fs_show_options with generic_show_options for now. Signed-off-by: Abhishek Kulkarni <adkulkar@umail.iu.edu> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
		
							parent
							
								
									0aad37ef3d
								
							
						
					
					
						commit
						4b53e4b500
					
				
					 3 changed files with 10 additions and 35 deletions
				
			
		
							
								
								
									
										21
									
								
								fs/9p/v9fs.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								fs/9p/v9fs.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -76,7 +76,7 @@ static const match_table_t tokens = {
 | 
			
		|||
 * Return 0 upon success, -ERRNO upon failure.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static int v9fs_parse_options(struct v9fs_session_info *v9ses)
 | 
			
		||||
static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
 | 
			
		||||
{
 | 
			
		||||
	char *options;
 | 
			
		||||
	substring_t args[MAX_OPT_ARGS];
 | 
			
		||||
| 
						 | 
				
			
			@ -90,10 +90,10 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses)
 | 
			
		|||
	v9ses->debug = 0;
 | 
			
		||||
	v9ses->cache = 0;
 | 
			
		||||
 | 
			
		||||
	if (!v9ses->options)
 | 
			
		||||
	if (!opts)
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
	options = kstrdup(v9ses->options, GFP_KERNEL);
 | 
			
		||||
	options = kstrdup(opts, GFP_KERNEL);
 | 
			
		||||
	if (!options) {
 | 
			
		||||
		P9_DPRINTK(P9_DEBUG_ERROR,
 | 
			
		||||
			   "failed to allocate copy of option string\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -206,24 +206,14 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 | 
			
		|||
	v9ses->uid = ~0;
 | 
			
		||||
	v9ses->dfltuid = V9FS_DEFUID;
 | 
			
		||||
	v9ses->dfltgid = V9FS_DEFGID;
 | 
			
		||||
	if (data) {
 | 
			
		||||
		v9ses->options = kstrdup(data, GFP_KERNEL);
 | 
			
		||||
		if (!v9ses->options) {
 | 
			
		||||
			P9_DPRINTK(P9_DEBUG_ERROR,
 | 
			
		||||
			   "failed to allocate copy of option string\n");
 | 
			
		||||
			retval = -ENOMEM;
 | 
			
		||||
			goto error;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	rc = v9fs_parse_options(v9ses);
 | 
			
		||||
	rc = v9fs_parse_options(v9ses, data);
 | 
			
		||||
	if (rc < 0) {
 | 
			
		||||
		retval = rc;
 | 
			
		||||
		goto error;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	v9ses->clnt = p9_client_create(dev_name, v9ses->options);
 | 
			
		||||
 | 
			
		||||
	v9ses->clnt = p9_client_create(dev_name, data);
 | 
			
		||||
	if (IS_ERR(v9ses->clnt)) {
 | 
			
		||||
		retval = PTR_ERR(v9ses->clnt);
 | 
			
		||||
		v9ses->clnt = NULL;
 | 
			
		||||
| 
						 | 
				
			
			@ -280,7 +270,6 @@ void v9fs_session_close(struct v9fs_session_info *v9ses)
 | 
			
		|||
 | 
			
		||||
	__putname(v9ses->uname);
 | 
			
		||||
	__putname(v9ses->aname);
 | 
			
		||||
	kfree(v9ses->options);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -85,7 +85,6 @@ struct v9fs_session_info {
 | 
			
		|||
	unsigned int afid;
 | 
			
		||||
	unsigned int cache;
 | 
			
		||||
 | 
			
		||||
	char *options;		/* copy of mount options */
 | 
			
		||||
	char *uname;		/* user name to mount as */
 | 
			
		||||
	char *aname;		/* name of remote hierarchy being mounted */
 | 
			
		||||
	unsigned int maxdata;	/* max data for client interface */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ static int v9fs_set_super(struct super_block *s, void *data)
 | 
			
		|||
 | 
			
		||||
static void
 | 
			
		||||
v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
 | 
			
		||||
		int flags)
 | 
			
		||||
		int flags, void *data)
 | 
			
		||||
{
 | 
			
		||||
	sb->s_maxbytes = MAX_LFS_FILESIZE;
 | 
			
		||||
	sb->s_blocksize_bits = fls(v9ses->maxdata - 1);
 | 
			
		||||
| 
						 | 
				
			
			@ -91,6 +91,8 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
 | 
			
		|||
 | 
			
		||||
	sb->s_flags = flags | MS_ACTIVE | MS_SYNCHRONOUS | MS_DIRSYNC |
 | 
			
		||||
	    MS_NOATIME;
 | 
			
		||||
 | 
			
		||||
	save_mount_options(sb, data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +141,7 @@ static int v9fs_get_sb(struct file_system_type *fs_type, int flags,
 | 
			
		|||
		retval = PTR_ERR(sb);
 | 
			
		||||
		goto free_stat;
 | 
			
		||||
	}
 | 
			
		||||
	v9fs_fill_super(sb, v9ses, flags);
 | 
			
		||||
	v9fs_fill_super(sb, v9ses, flags, data);
 | 
			
		||||
 | 
			
		||||
	inode = v9fs_get_inode(sb, S_IFDIR | mode);
 | 
			
		||||
	if (IS_ERR(inode)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -208,21 +210,6 @@ static void v9fs_kill_super(struct super_block *s)
 | 
			
		|||
	P9_DPRINTK(P9_DEBUG_VFS, "exiting kill_super\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * v9fs_show_options - Show mount options in /proc/mounts
 | 
			
		||||
 * @m: seq_file to write to
 | 
			
		||||
 * @mnt: mount descriptor
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt)
 | 
			
		||||
{
 | 
			
		||||
	struct v9fs_session_info *v9ses = mnt->mnt_sb->s_fs_info;
 | 
			
		||||
	if (v9ses->options != NULL)
 | 
			
		||||
		seq_printf(m, ",%s", v9ses->options);
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
v9fs_umount_begin(struct super_block *sb)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -235,7 +222,7 @@ v9fs_umount_begin(struct super_block *sb)
 | 
			
		|||
static const struct super_operations v9fs_super_ops = {
 | 
			
		||||
	.statfs = simple_statfs,
 | 
			
		||||
	.clear_inode = v9fs_clear_inode,
 | 
			
		||||
	.show_options = v9fs_show_options,
 | 
			
		||||
	.show_options = generic_show_options,
 | 
			
		||||
	.umount_begin = v9fs_umount_begin,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue