From 9ae389a87da94217f41e9be0757649511e0a62e4 Mon Sep 17 00:00:00 2001 From: Martin Belanger Date: Thu, 2 Jul 2026 13:52:58 -0400 Subject: [PATCH] libnvme: substitute RUNDIR into the registry udev rule REGISTRY_DIR_DEFAULT follows the build's rundir setting (RUNDIR "/nvme/registry"), but the udev cleanup rule still hardcoded /run/nvme/registry, so a build that relocates rundir left the rule and the library pointing at different directories. Generate the rule from a template so both sides derive the path from the same meson setting. Signed-off-by: Martin Belanger --- libnvme/meson.build | 8 +++++--- .../{70-nvmf-registry.rules => 70-nvmf-registry.rules.in} | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) rename libnvme/sysfiles/udev/rules.d/{70-nvmf-registry.rules => 70-nvmf-registry.rules.in} (93%) diff --git a/libnvme/meson.build b/libnvme/meson.build index 21f3342113..7712c30ee2 100644 --- a/libnvme/meson.build +++ b/libnvme/meson.build @@ -42,9 +42,11 @@ if want_libnvme endif if want_fabrics - install_data( - 'sysfiles/udev/rules.d/70-nvmf-registry.rules', - install_dir: udevrulesdir, + configure_file( + input: 'sysfiles/udev/rules.d/70-nvmf-registry.rules.in', + output: '70-nvmf-registry.rules', + configuration: substs, + install_dir: udevrulesdir, ) endif diff --git a/libnvme/sysfiles/udev/rules.d/70-nvmf-registry.rules b/libnvme/sysfiles/udev/rules.d/70-nvmf-registry.rules.in similarity index 93% rename from libnvme/sysfiles/udev/rules.d/70-nvmf-registry.rules rename to libnvme/sysfiles/udev/rules.d/70-nvmf-registry.rules.in index e9ecf19d1c..12c72bfe57 100644 --- a/libnvme/sysfiles/udev/rules.d/70-nvmf-registry.rules +++ b/libnvme/sysfiles/udev/rules.d/70-nvmf-registry.rules.in @@ -22,4 +22,4 @@ # $$ yields a literal '$' for the shell; $env{SEQNUM} is the REMOVE event's # sequence number, substituted by udev. ACTION=="remove", SUBSYSTEM=="nvme", KERNEL=="nvme[0-9]*", \ - RUN+="/bin/sh -c '[ -e /dev/%k ] || [ $env{SEQNUM} -le $$(cat /run/nvme/registry/%k/seqnum 2>/dev/null || echo 0) ] || rm -rf /run/nvme/registry/%k'" + RUN+="/bin/sh -c '[ -e /dev/%k ] || [ $env{SEQNUM} -le $$(cat @RUNDIR@/nvme/registry/%k/seqnum 2>/dev/null || echo 0) ] || rm -rf @RUNDIR@/nvme/registry/%k'"