diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c
index f6f2eebc0767c8beace04e630dc5bca0bd4f84e9..f3e4a13fea0c8a5337ce5383951fb389ea24144a 100644
--- a/net/ceph/ceph_common.c
+++ b/net/ceph/ceph_common.c
@@ -249,7 +249,7 @@ int ceph_parse_options(struct ceph_options **popt, char *options,
 			continue;
 		err = -EINVAL;
 		token = match_token((char *)c, opt_tokens, argstr);
-		if (token < 0) {
+		if (token < 0 && parse_extra_token) {
 			/* extra? */
 			err = parse_extra_token((char *)c, private);
 			if (err < 0) {