From: mwilck@suse.com
To: Keith Busch <kbusch@kernel.org>, linux-nvme@lists.infradead.org
Cc: Hannes Reinecke <hare@suse.de>,
Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com>,
Martin Wilck <mwilck@suse.com>
Subject: [PATCH 19/35] fabrics: use "const char *" in struct config
Date: Tue, 26 Jan 2021 21:33:08 +0100 [thread overview]
Message-ID: <20210126203324.23610-20-mwilck@suse.com> (raw)
In-Reply-To: <20210126203324.23610-1-mwilck@suse.com>
From: Martin Wilck <mwilck@suse.com>
This is easily done, and allows passing in some const char* pointers
that would otherwise need to be strdup()d first.
constifying cfg->device requires changes in the ctrl_instance()
function, because basename() can't be used.
Signed-off-by: Martin Wilck <mwilck@suse.com>
---
fabrics.c | 23 ++++++++++++++---------
fabrics.h | 17 +++++++++--------
2 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/fabrics.c b/fabrics.c
index c1a4bb5..e3d2a3a 100644
--- a/fabrics.c
+++ b/fabrics.c
@@ -252,17 +252,22 @@ empty_field:
return strdup("\0");
}
-static int ctrl_instance(char *device)
+int ctrl_instance(const char *device)
{
char d[64];
+ const char *p;
int ret, instance;
- device = basename(device);
- ret = sscanf(device, "nvme%d", &instance);
+ p = strrchr(device, '/');
+ if (p == NULL)
+ p = device;
+ else
+ p++;
+ ret = sscanf(p, "nvme%d", &instance);
if (ret <= 0)
return -EINVAL;
if (snprintf(d, sizeof(d), "nvme%d", instance) <= 0 ||
- strcmp(device, d))
+ strcmp(p, d))
return -EINVAL;
return instance;
}
@@ -273,7 +278,7 @@ static int ctrl_instance(char *device)
* given.
* Return true/false based on whether it matches
*/
-static bool ctrl_matches_connectargs(char *name, struct connect_args *args)
+static bool ctrl_matches_connectargs(const char *name, struct connect_args *args)
{
struct connect_args cargs;
bool found = false;
@@ -815,7 +820,7 @@ add_int_argument(char **argstr, int *max_len, char *arg_str, int arg,
}
static int
-add_argument(char **argstr, int *max_len, char *arg_str, char *arg)
+add_argument(char **argstr, int *max_len, char *arg_str, const char *arg)
{
int len;
@@ -1541,7 +1546,7 @@ static int scan_sys_nvme_filter(const struct dirent *d)
/*
* Returns 1 if disconnect occurred, 0 otherwise.
*/
-static int disconnect_subsys(char *nqn, char *ctrl)
+static int disconnect_subsys(const char *nqn, char *ctrl)
{
char *sysfs_nqn_path = NULL, *sysfs_del_path = NULL;
char subsysnqn[NVMF_NQN_SIZE] = {};
@@ -1579,7 +1584,7 @@ static int disconnect_subsys(char *nqn, char *ctrl)
/*
* Returns the number of controllers successfully disconnected.
*/
-static int disconnect_by_nqn(char *nqn)
+static int disconnect_by_nqn(const char *nqn)
{
struct dirent **devices = NULL;
int i, n, ret = 0;
@@ -1601,7 +1606,7 @@ static int disconnect_by_nqn(char *nqn)
return ret;
}
-static int disconnect_by_device(char *device)
+static int disconnect_by_device(const char *device)
{
int instance;
diff --git a/fabrics.h b/fabrics.h
index ce965a3..1dfbd67 100644
--- a/fabrics.h
+++ b/fabrics.h
@@ -13,13 +13,13 @@ extern int fabrics_disconnect_all(const char *desc, int argc, char **argv);
/* Symbols used by monitor.c */
struct config {
- char *nqn;
- char *transport;
- char *traddr;
- char *trsvcid;
- char *host_traddr;
- char *hostnqn;
- char *hostid;
+ const char *nqn;
+ const char *transport;
+ const char *traddr;
+ const char *trsvcid;
+ const char *host_traddr;
+ const char *hostnqn;
+ const char *hostid;
int nr_io_queues;
int nr_write_queues;
int nr_poll_queues;
@@ -29,7 +29,7 @@ struct config {
int ctrl_loss_tmo;
int tos;
char *raw;
- char *device;
+ const char *device;
int duplicate_connect;
int disable_sqflow;
int hdr_digest;
@@ -43,5 +43,6 @@ extern struct config cfg;
int build_options(char *argstr, int max_len, bool discover);
int do_discover(char *argstr, bool connect);
+int ctrl_instance(const char *device);
#endif
--
2.29.2
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
next prev parent reply other threads:[~2021-01-26 20:35 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-26 20:32 [PATCH 00/35] RFC: add "nvme monitor" subcommand mwilck
2021-01-26 20:32 ` [PATCH 01/35] nvme-monitor: add new stub mwilck
2021-01-26 20:32 ` [PATCH 02/35] monitor: create udev socket mwilck
2021-01-26 20:32 ` [PATCH 03/35] monitor: initialize signal handling mwilck
2021-01-26 20:32 ` [PATCH 04/35] monitor: add main loop for uevent monitoring mwilck
2021-01-26 20:32 ` [PATCH 05/35] monitor: add uevent filters mwilck
2021-02-04 6:58 ` Hannes Reinecke
2021-01-26 20:32 ` [PATCH 06/35] monitor: Create a log() macro mwilck
2021-02-04 7:01 ` Hannes Reinecke
2021-02-04 9:14 ` Martin Wilck
2021-01-26 20:32 ` [PATCH 07/35] fabrics: use " mwilck
2021-02-04 7:02 ` Hannes Reinecke
2021-01-26 20:32 ` [PATCH 08/35] monitor: add command line options to control logging mwilck
2021-02-04 7:04 ` Hannes Reinecke
2021-02-04 9:18 ` Martin Wilck
2021-01-26 20:32 ` [PATCH 09/35] nvme_get_ctrl_attr(): constify "path" argument mwilck
2021-02-04 7:05 ` Hannes Reinecke
2021-01-26 20:32 ` [PATCH 10/35] fabrics: export do_discover(), build_options() and config mwilck
2021-02-04 7:09 ` Hannes Reinecke
2021-02-04 9:21 ` Martin Wilck
2021-01-26 20:33 ` [PATCH 11/35] monitor: add option -A / --autoconnect mwilck
2021-01-29 18:59 ` Sagi Grimberg
2021-01-29 19:33 ` Martin Wilck
2021-01-29 20:09 ` Sagi Grimberg
2021-02-04 7:13 ` Hannes Reinecke
2021-01-26 20:33 ` [PATCH 12/35] monitor: add helpers for __attribute__((cleanup)) mwilck
2021-02-04 7:14 ` Hannes Reinecke
2021-01-26 20:33 ` [PATCH 13/35] monitor: disable nvmf-autoconnect udev rules in autoconnect mode mwilck
2021-01-29 1:52 ` Sagi Grimberg
2021-01-29 14:16 ` Martin Wilck
2021-01-29 18:54 ` Sagi Grimberg
2021-02-04 7:16 ` Hannes Reinecke
2021-02-04 9:37 ` Martin Wilck
2021-01-26 20:33 ` [PATCH 14/35] monitor: implement handling of fc_udev_device mwilck
2021-01-26 20:33 ` [PATCH 15/35] monitor: implement handling of nvme AEN events mwilck
2021-01-26 20:33 ` [PATCH 16/35] monitor: reset children's signal disposition mwilck
2021-01-29 1:54 ` Sagi Grimberg
2021-01-29 14:18 ` Martin Wilck
2021-01-26 20:33 ` [PATCH 17/35] monitor: handle SIGCHLD for terminated child processes mwilck
2021-01-29 1:54 ` Sagi Grimberg
2021-01-26 20:33 ` [PATCH 18/35] monitor: add "--persistent/-p" flag mwilck
2021-01-29 19:02 ` Sagi Grimberg
2021-01-29 19:45 ` Martin Wilck
2021-01-26 20:33 ` mwilck [this message]
2021-02-04 7:20 ` [PATCH 19/35] fabrics: use "const char *" in struct config Hannes Reinecke
2021-01-26 20:33 ` [PATCH 20/35] fabrics: export arg_str(), parse_conn_arg(), and remove_ctrl() mwilck
2021-01-26 20:33 ` [PATCH 21/35] nvme-cli: add "list.h" mwilck
2021-01-26 20:33 ` [PATCH 22/35] conn-db: add simple connection registry mwilck
2021-01-29 1:59 ` Sagi Grimberg
2021-01-29 14:18 ` Martin Wilck
2021-01-26 20:33 ` [PATCH 23/35] monitor: handle restart of pending discoveries mwilck
2021-01-26 20:33 ` [PATCH 24/35] monitor: monitor_discovery(): try to reuse existing controllers mwilck
2021-01-26 20:33 ` [PATCH 25/35] monitor: read existing connections on startup mwilck
2021-01-26 20:33 ` [PATCH 26/35] monitor: implement starting discovery controllers " mwilck
2021-01-29 21:06 ` Sagi Grimberg
2021-01-29 21:13 ` Martin Wilck
2021-01-29 21:18 ` Sagi Grimberg
2021-01-26 20:33 ` [PATCH 27/35] monitor: implement cleanup of created discovery controllers mwilck
2021-01-26 20:33 ` [PATCH 28/35] monitor: basic handling of add/remove uevents for nvme controllers mwilck
2021-01-26 20:33 ` [PATCH 29/35] monitor: kill running discovery tasks on exit mwilck
2021-01-26 20:33 ` [PATCH 30/35] monitor: add connection property options from connect-all mwilck
2021-01-26 20:33 ` [PATCH 31/35] completions: add completions for nvme monitor mwilck
2021-01-26 20:33 ` [PATCH 32/35] nvmf-autoconnect: add unit file for nvme-monitor.service mwilck
2021-01-29 19:08 ` Sagi Grimberg
2021-01-29 19:50 ` Martin Wilck
2021-01-26 20:33 ` [PATCH 33/35] nvme-connect-all(1): fix documentation for --quiet/-S mwilck
2021-01-29 19:09 ` Sagi Grimberg
2021-01-26 20:33 ` [PATCH 34/35] nvme-monitor(1): add man page for nvme-monitor mwilck
2021-01-26 20:33 ` [PATCH 35/35] monitor: add option --keep/-K mwilck
2021-01-29 19:10 ` Sagi Grimberg
2021-01-29 19:53 ` Martin Wilck
2021-01-29 20:16 ` Sagi Grimberg
2021-01-29 20:30 ` Martin Wilck
2021-01-29 20:45 ` Sagi Grimberg
2021-01-29 20:51 ` Martin Wilck
2021-01-29 20:57 ` Sagi Grimberg
2021-01-29 21:05 ` Martin Wilck
2021-01-29 21:11 ` Sagi Grimberg
2021-01-29 21:15 ` Martin Wilck
2021-01-29 21:21 ` Sagi Grimberg
2021-02-04 7:34 ` Hannes Reinecke
2021-02-04 9:41 ` Martin Wilck
2021-01-29 1:14 ` [PATCH 00/35] RFC: add "nvme monitor" subcommand Sagi Grimberg
2021-01-29 11:18 ` Martin Wilck
2021-01-29 20:08 ` Sagi Grimberg
2021-01-29 20:27 ` Martin Wilck
2021-02-04 7:52 ` Hannes Reinecke
2021-02-22 19:02 ` Enzo Matsumiya
2021-02-22 21:05 ` Martin Wilck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210126203324.23610-20-mwilck@suse.com \
--to=mwilck@suse.com \
--cc=Chaitanya.Kulkarni@wdc.com \
--cc=hare@suse.de \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox