From e53c2fe075feda1fd4f009956ac026dc24c3a199 Mon Sep 17 00:00:00 2001
From: Sage Weil <sage@newdream.net>
Date: Tue, 27 Oct 2009 10:19:28 -0700
Subject: ceph: fix, clean up string mount arg parsing

Clearly demark int and string argument options, and do not try to convert
string arguments to ints.

Signed-off-by: Sage Weil <sage@newdream.net>
---
 fs/ceph/super.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

(limited to 'fs')

diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 924e6cad0b6..b094f5003ef 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -264,9 +264,11 @@ enum {
 	Opt_caps_wanted_delay_min,
 	Opt_caps_wanted_delay_max,
 	Opt_readdir_max_entries,
+	Opt_last_int,
 	/* int args above */
 	Opt_snapdirname,
 	Opt_secret,
+	Opt_last_string,
 	/* string args above */
 	Opt_ip,
 	Opt_noshare,
@@ -386,14 +388,19 @@ static int parse_mount_args(struct ceph_client *client,
 			pr_err("bad mount option at '%s'\n", c);
 			goto out;
 		}
-		if (token < Opt_ip) {
+		if (token < Opt_last_int) {
 			ret = match_int(&argstr[0], &intval);
 			if (ret < 0) {
 				pr_err("bad mount option arg (not int) "
 				       "at '%s'\n", c);
 				continue;
 			}
-			dout("got token %d intval %d\n", token, intval);
+			dout("got int token %d val %d\n", token, intval);
+		} else if (token > Opt_last_int && token < Opt_last_string) {
+			dout("got string token %d val %s\n", token,
+			     argstr[0].from);
+		} else {
+			dout("got token %d\n", token);
 		}
 		switch (token) {
 		case Opt_fsidmajor:
-- 
cgit v1.2.3-18-g5258