Ver Fonte

net/9p: fail when user specifies a transport which we can't find

If the user specifies a transport and we can't find it, we failed back
to the default trainsport silently.  This patch will make the code
complain more loudly and return an error code.

Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Eric Van Hensbergen há 15 anos atrás
pai
commit
349d3bb878
1 ficheiros alterados com 8 adições e 0 exclusões
  1. 8 0
      net/9p/client.c

+ 8 - 0
net/9p/client.c

@@ -108,6 +108,13 @@ static int parse_opts(char *opts, struct p9_client *clnt)
 			break;
 		case Opt_trans:
 			clnt->trans_mod = v9fs_get_trans_by_name(&args[0]);
+			if(clnt->trans_mod == NULL) {
+				P9_DPRINTK(P9_DEBUG_ERROR,
+				   "Could not find request transport: %s\n",
+				   (char *) &args[0]);
+				ret = -EINVAL;
+				goto free_and_return;
+			}
 			break;
 		case Opt_legacy:
 			clnt->dotu = 0;
@@ -117,6 +124,7 @@ static int parse_opts(char *opts, struct p9_client *clnt)
 		}
 	}
 
+free_and_return:
 	kfree(options);
 	return ret;
 }