]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
ceph: generalize addr/ip parsing based on delimiter
authorVenky Shankar <vshankar@redhat.com>
Wed, 14 Jul 2021 10:05:50 +0000 (15:35 +0530)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 1 Dec 2021 16:23:13 +0000 (17:23 +0100)
... and remove hardcoded function name in ceph_parse_ips().

Signed-off-by: Venky Shankar <vshankar@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
drivers/block/rbd.c
fs/ceph/super.c
include/linux/ceph/libceph.h
include/linux/ceph/messenger.h
net/ceph/ceph_common.c
net/ceph/messenger.c

index cb4afac9d0b54243a62095f94344991d7a82da8a..2b3bfe236786b17486a10c8879bc2c68a7350c5a 100644 (file)
@@ -6497,7 +6497,8 @@ static int rbd_add_parse_args(const char *buf,
        pctx.opts->exclusive = RBD_EXCLUSIVE_DEFAULT;
        pctx.opts->trim = RBD_TRIM_DEFAULT;
 
-       ret = ceph_parse_mon_ips(mon_addrs, mon_addrs_size, pctx.copts, NULL);
+       ret = ceph_parse_mon_ips(mon_addrs, mon_addrs_size, pctx.copts, NULL,
+                                CEPH_ADDR_PARSE_DEFAULT_DELIM);
        if (ret)
                goto out_err;
 
index bab61232dc5a05a782122a2d8ef50368054e379b..3ad2f240ecd81196e8536021b78b68be46ea3c37 100644 (file)
@@ -272,7 +272,8 @@ static int ceph_parse_source(struct fs_parameter *param, struct fs_context *fc)
                dout("server path '%s'\n", fsopt->server_path);
 
        ret = ceph_parse_mon_ips(param->string, dev_name_end - dev_name,
-                                pctx->copts, fc->log.log);
+                                pctx->copts, fc->log.log,
+                                CEPH_ADDR_PARSE_DEFAULT_DELIM);
        if (ret)
                return ret;
 
index 409d8c29bc4f593bea11ee5b8b233ead0b0e617c..e50dba42981972dc086b4dce9336c1a80d3b7f36 100644 (file)
@@ -98,6 +98,8 @@ struct ceph_options {
 
 #define CEPH_AUTH_NAME_DEFAULT   "guest"
 
+#define CEPH_ADDR_PARSE_DEFAULT_DELIM  ','
+
 /* mount state */
 enum {
        CEPH_MOUNT_MOUNTING,
@@ -301,7 +303,7 @@ struct fs_parameter;
 struct fc_log;
 struct ceph_options *ceph_alloc_options(void);
 int ceph_parse_mon_ips(const char *buf, size_t len, struct ceph_options *opt,
-                      struct fc_log *l);
+                      struct fc_log *l, char delimiter);
 int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
                     struct fc_log *l);
 int ceph_print_client_options(struct seq_file *m, struct ceph_client *client,
index 0e6e9ad3c3bf34ab1e3c19c8cd86162552e2680a..c9675ee33f51f82e8bc704ac0779934919ca1db4 100644 (file)
@@ -532,7 +532,7 @@ extern const char *ceph_pr_addr(const struct ceph_entity_addr *addr);
 
 extern int ceph_parse_ips(const char *c, const char *end,
                          struct ceph_entity_addr *addr,
-                         int max_count, int *count);
+                         int max_count, int *count, char delimiter);
 
 extern int ceph_msgr_init(void);
 extern void ceph_msgr_exit(void);
index 97d6ea763e3265a294fd1447ce36f7ac16cef6f7..0f74ceeddf4878399f104abd65a961bb8a89746a 100644 (file)
@@ -422,14 +422,14 @@ out:
 }
 
 int ceph_parse_mon_ips(const char *buf, size_t len, struct ceph_options *opt,
-                      struct fc_log *l)
+                      struct fc_log *l, char delimiter)
 {
        struct p_log log = {.prefix = "libceph", .log = l};
        int ret;
 
-       /* ip1[:port1][,ip2[:port2]...] */
+       /* ip1[:port1][<delim>ip2[:port2]...] */
        ret = ceph_parse_ips(buf, buf + len, opt->mon_addr, CEPH_MAX_MON,
-                            &opt->num_mon);
+                            &opt->num_mon, delimiter);
        if (ret) {
                error_plog(&log, "Failed to parse monitor IPs: %d", ret);
                return ret;
@@ -456,7 +456,7 @@ int ceph_parse_param(struct fs_parameter *param, struct ceph_options *opt,
                err = ceph_parse_ips(param->string,
                                     param->string + param->size,
                                     &opt->my_addr,
-                                    1, NULL);
+                                    1, NULL, CEPH_ADDR_PARSE_DEFAULT_DELIM);
                if (err) {
                        error_plog(&log, "Failed to parse ip: %d", err);
                        return err;
index 57d043b382ed0581c3fd1f0937e960729353a8f8..c93d103fe3431160f2e7bd654ec40c406d2afacb 100644 (file)
@@ -1267,7 +1267,7 @@ static int ceph_parse_server_name(const char *name, size_t namelen,
  */
 int ceph_parse_ips(const char *c, const char *end,
                   struct ceph_entity_addr *addr,
-                  int max_count, int *count)
+                  int max_count, int *count, char delimiter)
 {
        int i, ret = -EINVAL;
        const char *p = c;
@@ -1276,7 +1276,7 @@ int ceph_parse_ips(const char *c, const char *end,
        for (i = 0; i < max_count; i++) {
                const char *ipend;
                int port;
-               char delim = ',';
+               char delim = delimiter;
 
                if (*p == '[') {
                        delim = ']';
@@ -1326,11 +1326,11 @@ int ceph_parse_ips(const char *c, const char *end,
                addr[i].type = CEPH_ENTITY_ADDR_TYPE_LEGACY;
                addr[i].nonce = 0;
 
-               dout("parse_ips got %s\n", ceph_pr_addr(&addr[i]));
+               dout("%s got %s\n", __func__, ceph_pr_addr(&addr[i]));
 
                if (p == end)
                        break;
-               if (*p != ',')
+               if (*p != delimiter)
                        goto bad;
                p++;
        }