All of lore.kernel.org
 help / color / mirror / Atom feed
From: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
To: Prem Karat <prem.karat@linux.vnet.ibm.com>
Cc: v9fs-developer@lists.sourceforge.net,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [V9fs-developer] [PATCH] fs/9p: Fix invalid mount options/args
Date: Sun, 08 May 2011 10:51:18 -0700	[thread overview]
Message-ID: <4DC6D816.9060507@linux.vnet.ibm.com> (raw)
In-Reply-To: <20110506125417.GD6759@d6fc318.ibm.com>

On 05/06/2011 05:54 AM, Prem Karat wrote:
> fs/9p: Fix invalid mount options/args
>
> Without this fix, if any invalid mount options/args are passed while mouting the 9p fs,
> no error (-EINVAL) is returned and default arg value is assigned.
>
> This fix returns -EINVAL when an invalid arguement is found while parsing mount options.
Prem, Thanks for the patch.
Quick question..any reason why you have a new function for cache, and 
in-line here?

Thanks,
JV
> Signed-off-by: Prem Karat<prem.karat@linux.vnet.ibm.com>
> ---
>   fs/9p/v9fs.c |   43 ++++++++++++++++++++++++++++++++++---------
>   1 files changed, 34 insertions(+), 9 deletions(-)
>
> diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
> index c82b017..033c23e 100644
> --- a/fs/9p/v9fs.c
> +++ b/fs/9p/v9fs.c
> @@ -78,6 +78,25 @@ static const match_table_t tokens = {
>   	{Opt_err, NULL}
>   };
>
> +/* Interpret mount options for cache mode */
> +static int get_cache_mode(char *s)
> +{
> +	int version = -EINVAL;
> +
> +	if (!strcmp(s, "loose")) {
> +		version = CACHE_LOOSE;
> +		P9_DPRINTK(P9_DEBUG_9P, "Cache mode: loose\n");
> +	} else if (!strcmp(s, "fscache")) {
> +		version = CACHE_FSCACHE;
> +		P9_DPRINTK(P9_DEBUG_9P, "Cache mode: fscache\n");
> +	} else if (!strcmp(s, "none")) {
> +		version = CACHE_NONE;
> +		P9_DPRINTK(P9_DEBUG_9P, "Cache mode: none\n");
> +	} else
> +		printk(KERN_INFO "9p: Unknown Cache mode %s.\n", s);
> +	return version;
> +}
> +
>   /**
>    * v9fs_parse_options - parse mount options into session structure
>    * @v9ses: existing v9fs session information
> @@ -97,7 +116,7 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
>   	/* setup defaults */
>   	v9ses->afid = ~0;
>   	v9ses->debug = 0;
> -	v9ses->cache = 0;
> +	v9ses->cache = CACHE_NONE;
>   #ifdef CONFIG_9P_FSCACHE
>   	v9ses->cachetag = NULL;
>   #endif
> @@ -171,13 +190,13 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
>   				  "problem allocating copy of cache arg\n");
>   				goto free_and_return;
>   			}
> +			ret = get_cache_mode(s);
> +			if (ret == -EINVAL) {
> +				kfree(s);
> +				goto free_and_return;
> +			}
>
> -			if (strcmp(s, "loose") == 0)
> -				v9ses->cache = CACHE_LOOSE;
> -			else if (strcmp(s, "fscache") == 0)
> -				v9ses->cache = CACHE_FSCACHE;
> -			else
> -				v9ses->cache = CACHE_NONE;
> +			v9ses->cache = ret;
>   			kfree(s);
>   			break;
>
> @@ -200,9 +219,15 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
>   			} else {
>   				v9ses->flags |= V9FS_ACCESS_SINGLE;
>   				v9ses->uid = simple_strtoul(s,&e, 10);
> -				if (*e != '\0')
> -					v9ses->uid = ~0;
> +				if (*e != '\0') {
> +					ret = -EINVAL;
> +					printk(KERN_INFO "9p: Unknown access "
> +							"argument %s.\n", s);
> +					kfree(s);
> +					goto free_and_return;


> +				}
>   			}
> +
>   			kfree(s);
>   			break;
>


  reply	other threads:[~2011-05-08 17:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-06 12:54 [PATCH] fs/9p: Fix invalid mount options/args Prem Karat
2011-05-08 17:51 ` Venkateswararao Jujjuri [this message]
2011-05-11  4:44   ` [V9fs-developer] " Prem Karat

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DC6D816.9060507@linux.vnet.ibm.com \
    --to=jvrao@linux.vnet.ibm.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=prem.karat@linux.vnet.ibm.com \
    --cc=v9fs-developer@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.