On Thu, Apr 04, 2024 at 07:38:10PM +0200, Martin Wilck wrote: > With the late changes to the device mapper rules, DM_SUSPENDED > is not exported any more. Use .DM_SUSPENDED instead. > > Note that although 11-dm-mpath.rules is not a part of lvm2, it > can be considered as part of the device-mapper layer (everything > before 13-dm-disk.rules can), and is thus allowed to use > .DM_SUSPENDED. In practice .DM_SUSPENDED is equivalent to > DM_UDEV_DISABLE_OTHER_RULES_FLAG for multipath devices, but > using .DM_SUSPENDED here makes the intention more obvious. > > Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> Reviewed-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> > --- > multipath/11-dm-mpath.rules.in | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/multipath/11-dm-mpath.rules.in b/multipath/11-dm-mpath.rules.in > index 95126bf..efc6416 100644 > --- a/multipath/11-dm-mpath.rules.in > +++ b/multipath/11-dm-mpath.rules.in > @@ -4,8 +4,11 @@ ENV{DM_UUID}!="mpath-?*", GOTO="mpath_end" > > IMPORT{db}="MPATH_DEVICE_READY" > > +# device-mapper rules v2 compatibility > +ENV{.DM_SUSPENDED}!="?*", ENV{.DM_SUSPENDED}="$env{DM_SUSPENDED}" > + > # Coldplug event while device is suspended (e.g. during a reload) > -ACTION=="add", ENV{DM_ACTIVATION}=="1", ENV{DM_SUSPENDED}=="1", \ > +ACTION=="add", ENV{DM_ACTIVATION}=="1", ENV{.DM_SUSPENDED}=="1", \ > PROGRAM="/bin/logger -t 11-dm-mpath.rules -p daemon.warning \"Coldplug event for suspended device\"", \ > ENV{DM_COLDPLUG_SUSPENDED}="1", GOTO="scan_import" > > @@ -17,7 +20,7 @@ ENV{DM_UDEV_RULES_VSN}!="1|2", ENV{.DM_SUSPENDED}!="1", GOTO="scan_import" > # from DB in 10-dm.rules. If the device is not suspended, clear the flag. > # This is safe for multipath where DM_UDEV_DISABLE_OTHER_RULES_FLAG is basically > # equivalent to DM_SUSPENDED==1 || DISK_RO==1 > -ENV{DM_UDEV_RULES_VSN}=="1|2", ENV{DM_SUSPENDED}!="1", ENV{DISK_RO}!="1", \ > +ENV{DM_UDEV_RULES_VSN}=="1|2", ENV{.DM_SUSPENDED}!="1", ENV{DISK_RO}!="1", \ > ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="", GOTO="scan_import" > LABEL="mpath_coldplug_end" > > @@ -68,7 +71,7 @@ LABEL="mpath_action" > # Activation might have been partially skipped. Activate the device now, > # i.e. disable the MPATH_UNCHANGED logic and set DM_ACTIVATION=1. > IMPORT{db}="DM_COLDPLUG_SUSPENDED" > -ENV{DM_COLDPLUG_SUSPENDED}=="1", ENV{DM_SUSPENDED}!="1", \ > +ENV{DM_COLDPLUG_SUSPENDED}=="1", ENV{.DM_SUSPENDED}!="1", \ > ENV{DM_ACTIVATION}="1", ENV{MPATH_UNCHANGED}="0", \ > PROGRAM="/bin/logger -t 11-dm-mpath.rules -p daemon.notice \"Forcing activation of previously suspended device\"", \ > GOTO="force_activation" > @@ -111,7 +114,7 @@ LABEL="mpath_is_ready" > # In this case, we have to set MPATH_DEVICE_READY=0; otherwise, the > # MPATH_UNCHANGED logic will cause later rules to skipped in the next event. > ENV{.MPATH_DEVICE_READY_OLD}!="0", GOTO="dont_activate" > -ENV{DM_SUSPENDED}=="1", ENV{MPATH_DEVICE_READY}="0", GOTO="dont_activate" > +ENV{.DM_SUSPENDED}=="1", ENV{MPATH_DEVICE_READY}="0", GOTO="dont_activate" > > ENV{DM_ACTIVATION}="1", ENV{MPATH_UNCHANGED}="0" > LABEL="dont_activate" > @@ -145,7 +148,7 @@ IMPORT{db}="ID_PART_GPT_AUTO_ROOT" > LABEL="import_end" > > # Reset previous DM_COLDPLUG_SUSPENDED if activation happens now > -ENV{DM_SUSPENDED}!="1", ENV{DM_ACTIVATION}=="1", ENV{DM_COLDPLUG_SUSPENDED}="" > +ENV{.DM_SUSPENDED}!="1", ENV{DM_ACTIVATION}=="1", ENV{DM_COLDPLUG_SUSPENDED}="" > > # Multipath maps should take precedence over their members. > ENV{DM_UDEV_LOW_PRIORITY_FLAG}!="1", OPTIONS+="link_priority=50" > -- > 2.44.0