nvme: redesign --persistent, remove --epcsd/--no-epcsd - #3776
Merged
Conversation
Collaborator
|
Just from the user point of view, this makes a lot of sense. So I personally would prefer the interface to the user over the for different flags. @Mr-Bossman any objections? |
igaw
reviewed
Aug 10, 2026
martin-belanger
force-pushed
the
epcsd-persistent-flags
branch
2 times, most recently
from
August 10, 2026 10:37
75cc1a0 to
4b09cda
Compare
Contributor
This looks good. It seems to change the default behavior of |
Mr-Bossman
reviewed
Aug 10, 2026
added 4 commits
August 10, 2026 11:48
First use of getopt's optional_argument in this codebase. The value must be attached to the option (--opt=value or -ovalue); getopt never consumes a separate following token for it. Signed-off-by: Martin Belanger <martin.belanger@dell.com>
Splitting on '=' silently breaks a glued "--opt=value" token. getopt_long() parses '=' within a single token natively, so splitting it out here was never needed. Signed-off-by: Martin Belanger <martin.belanger@dell.com>
--persistent[=no|auto|force] replaces --persistent/--no-persistent and --epcsd/--no-epcsd. Bare --persistent means "auto"; omitted means "no". "force" covers the old epcsd override case, so epcsd is no longer a separate concept. config create/convert accept the same values for the persistent config key. Signed-off-by: Martin Belanger <martin.belanger@dell.com>
Signed-off-by: Martin Belanger <martin.belanger@dell.com>
martin-belanger
force-pushed
the
epcsd-persistent-flags
branch
from
August 10, 2026 15:51
4b09cda to
2599c16
Compare
Collaborator
|
I hope we got figured this now out :) Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Redesigns discovery controller persistence around EPCSD, and removes the now-redundant
--epcsd/--no-epcsdflags.--persistent[=no|auto|force]replaces--persistent/--no-persistentand--epcsd/--no-epcsd. Bare--persistentmeansauto; omitted meansno. Inautomode, persistence is decided per Discovery Log Page entry, driven entirely by that entry's own EPCSD flag --noandforceare explicit overrides of that default.EPCSD only affects whether a connection is kept alive afterward, not discovery itself:
discover/connect-allstill fetch every Discovery Log Page and follow every referral regardless of EPCSD, exactly as before this change. An EPCSD=0 entry's Discovery Log Page is still fully processed; it's just disconnected once that's done, not skipped.Four commits, in review order:
nvme: add OPT_STRING_OPTIONAL() for optional-argument options-- generic CLI framework addition, no behavior change on its own.nvme: split discovery.conf lines on whitespace only, not '='-- fixes a latent tokenizer bug that would otherwise silently break a glued--opt=valueinside a discovery.conf line.nvme: redesign --persistent, remove --epcsd/--no-epcsd-- the actual behavior change, in both libnvme and the CLI.doc: document --persistent[=no|auto|force]