nvme: redesign --persistent, remove --epcsd/--no-epcsd - #3776
Open
martin-belanger wants to merge 4 commits into
Open
nvme: redesign --persistent, remove --epcsd/--no-epcsd#3776martin-belanger wants to merge 4 commits into
martin-belanger wants to merge 4 commits into
Conversation
added 4 commits
August 7, 2026 12:12
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>
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]