Skip to content

[pull] master from linux-nvme:master#237

Merged
pull[bot] merged 5 commits into
zengqingfu1442:masterfrom
linux-nvme:master
Jun 24, 2026
Merged

[pull] master from linux-nvme:master#237
pull[bot] merged 5 commits into
zengqingfu1442:masterfrom
linux-nvme:master

Conversation

@pull

@pull pull Bot commented Jun 24, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

shroffni and others added 5 commits June 24, 2026 14:02
Add a nightly workflow in analyzer.yml which runs the Clang Static
Analyzer, archives the generated reports, and uploads them as workflow
artifacts and to the SFTP server for later inspection.

As Coverity support is being retired, replace the Coverity workflow with
the Clang Static Analyzer workflow. Rename coverity.yml to analyzer.yml
and update the README accordingly.

Signed-off-by: Nilay Shroff <nilay@linux.ibm.com>
Move the reports to a dedicated section in the documentation.

Signed-off-by: Daniel Wagner <wagi@kernel.org>
Move libnvme_init_subsystem from tree.c to tree-win.c and tree-linux.c.

Signed-off-by: Brandon Capener <bcapener@micron.com>
The union needs to be padded, so that the union doesn't have zero size.
gcc complains with "union has size 0 in C, non-zero size in C++
[-Werror,-Wextern-c-compat]"

Signed-off-by: Daniel Wagner <wagi@kernel.org>
…qnum

The udev REMOVE rule cleans up a controller's registry entry behind an
[ -e /dev/%k ] guard, so a recycled instance number whose new controller
has already written its entry is not clobbered. That guard alone leaves a
sub-shell TOCTOU: a new controller can claim the name and write its entry
in the window between the [ -e ] test and rm, after which the stale REMOVE
deletes a live entry.

Stamp each entry at connect with the kernel's monotonic
/sys/kernel/uevent_seqnum and remove only when the REMOVE event's own
SEQNUM exceeds the stamp. A stale REMOVE for the old controller was emitted
before the new controller's ADD, so its SEQNUM is necessarily lower than
the new entry's stamp and the entry survives, independent of timing. A
legitimate REMOVE of the current controller carries a SEQNUM above its own
stamp, so it still deletes. A missing stamp reads as 0 and falls back to
the device-existence check.

Build the entry in a temporary directory and rename() it into place so it
is observed only complete or absent, never as a directory that exists but
lacks its seqnum stamp -- which the rule would read as 0 and delete out
from under the connecting process. Symmetrically, remove a live entry by
renaming it to a hidden sibling and purging that, so a reader never sees a
half-emptied entry. The udev rule's own rm -rf stays non-atomic by nature;
this covers library-driven deletes.

Suggested-by: Daniel Wagner <wagi@kernel.org>
Signed-off-by: Martin Belanger <martin.belanger@dell.com>
@pull pull Bot locked and limited conversation to collaborators Jun 24, 2026
@pull pull Bot added the ⤵️ pull label Jun 24, 2026
@pull
pull Bot merged commit a759dd9 into zengqingfu1442:master Jun 24, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants