[PATCH nvme-7.3 1/4] nvme-fabrics: separate option tokenizer pointer

From: raoxu

Date: Fri Aug 21 2026 - 02:26:37 EST


From: Xu Rao <raoxu@xxxxxxxxxxxxx>

nvmf_parse_options() currently uses p both for the option returned by
strsep() and for strings allocated by match_strdup(). The former points
into the temporary options buffer while the latter owns a separate
allocation, so the same variable represents two different lifetimes.

Introduce option for the current string token passed to match_token().
The existing p variable is then used only for the duplicated string values
in this intermediate step and is removed as those allocations move into
helpers in the following patches.

The name option is intentional: options remains the backing buffer for the
full request, option is one comma/newline-delimited entry, and token names
the integer result returned by match_token().

This is a mechanical preparation with no functional change.

Suggested-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Xu Rao <raoxu@xxxxxxxxxxxxx>
---
drivers/nvme/host/fabrics.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c
index 59f823dfbbcc..1ec6da49167d 100644
--- a/drivers/nvme/host/fabrics.c
+++ b/drivers/nvme/host/fabrics.c
@@ -716,7 +716,7 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts,
const char *buf)
{
substring_t args[MAX_OPT_ARGS];
- char *options, *o, *p;
+ char *options, *o, *option, *p;
int token, ret = 0;
size_t nqnlen = 0;
int ctrl_loss_tmo = NVMF_DEF_CTRL_LOSS_TMO, key_id;
@@ -747,11 +747,11 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts,
uuid_copy(&hostid, &nvmf_default_host->id);
strscpy(hostnqn, nvmf_default_host->nqn, NVMF_NQN_SIZE);

- while ((p = strsep(&o, ",\n")) != NULL) {
- if (!*p)
+ while ((option = strsep(&o, ",\n")) != NULL) {
+ if (!*option)
continue;

- token = match_token(p, opt_tokens, args);
+ token = match_token(option, opt_tokens, args);
opts->mask |= token;
switch (token) {
case NVMF_OPT_TRANSPORT:
@@ -1068,7 +1068,7 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts,
break;
default:
pr_warn("unknown parameter or missing value '%s' in ctrl creation request\n",
- p);
+ option);
ret = -EINVAL;
goto out;
}
--
2.50.1