Skip to content

Commit

Permalink
fs/9p: Cleanup option parsing in 9p
Browse files Browse the repository at this point in the history
Instead of saying all integer argument option should be listed in the beginning
move integer parsing to each option type.

Signed-off-by: Aneesh Kumar K.V <[email protected]>
Signed-off-by: Eric Van Hensbergen <[email protected]>
  • Loading branch information
kvaneesh authored and ericvh committed Oct 24, 2011
1 parent 5635fd0 commit 4d5077f
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 14 deletions.
33 changes: 26 additions & 7 deletions fs/9p/v9fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,34 +132,53 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
options = tmp_options;

while ((p = strsep(&options, ",")) != NULL) {
int token;
int token, r;
if (!*p)
continue;
token = match_token(p, tokens, args);
if (token < Opt_uname) {
int r = match_int(&args[0], &option);
switch (token) {
case Opt_debug:
r = match_int(&args[0], &option);
if (r < 0) {
P9_DPRINTK(P9_DEBUG_ERROR,
"integer field, but no integer?\n");
"integer field, but no integer?\n");
ret = r;
continue;
}
}
switch (token) {
case Opt_debug:
v9ses->debug = option;
#ifdef CONFIG_NET_9P_DEBUG
p9_debug_level = option;
#endif
break;

case Opt_dfltuid:
r = match_int(&args[0], &option);
if (r < 0) {
P9_DPRINTK(P9_DEBUG_ERROR,
"integer field, but no integer?\n");
ret = r;
continue;
}
v9ses->dfltuid = option;
break;
case Opt_dfltgid:
r = match_int(&args[0], &option);
if (r < 0) {
P9_DPRINTK(P9_DEBUG_ERROR,
"integer field, but no integer?\n");
ret = r;
continue;
}
v9ses->dfltgid = option;
break;
case Opt_afid:
r = match_int(&args[0], &option);
if (r < 0) {
P9_DPRINTK(P9_DEBUG_ERROR,
"integer field, but no integer?\n");
ret = r;
continue;
}
v9ses->afid = option;
break;
case Opt_uname:
Expand Down
12 changes: 5 additions & 7 deletions net/9p/client.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,21 +123,19 @@ static int parse_opts(char *opts, struct p9_client *clnt)
options = tmp_options;

while ((p = strsep(&options, ",")) != NULL) {
int token;
int token, r;
if (!*p)
continue;
token = match_token(p, tokens, args);
if (token < Opt_trans) {
int r = match_int(&args[0], &option);
switch (token) {
case Opt_msize:
r = match_int(&args[0], &option);
if (r < 0) {
P9_DPRINTK(P9_DEBUG_ERROR,
"integer field, but no integer?\n");
"integer field, but no integer?\n");
ret = r;
continue;
}
}
switch (token) {
case Opt_msize:
clnt->msize = option;
break;
case Opt_trans:
Expand Down

0 comments on commit 4d5077f

Please sign in to comment.