From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Marzinski Subject: Re: [PATCH] 11-dm-mpath.rules: Fix udev rule processing during coldplug Date: Tue, 2 Jun 2020 16:21:21 -0500 Message-ID: <20200602212121.GA3266@octiron.msp.redhat.com> References: <20200602155443.14072-1-mwilck@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20200602155443.14072-1-mwilck@suse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com Content-Disposition: inline To: mwilck@suse.com Cc: dm-devel@redhat.com List-Id: dm-devel.ids On Tue, Jun 02, 2020 at 05:54:43PM +0200, mwilck@suse.com wrote: > From: Martin Wilck > > DM_SUBSYSTEM_UDEV_FLAG0 is used to indicate that upper layer > udev rules don't need to be processed for multipath maps, e.g. > for map reloads. > > However, this can fail if maps were created during initrd processing, > but udev processing for the change events of these maps didn't > complete because udevd was killed to switch root. So, in the coldplug > case, play safe and process the rules once more. > > Signed-off-by: Martin Wilck Reviewed-by: Benjamin Marzinski > --- > multipath/11-dm-mpath.rules | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/multipath/11-dm-mpath.rules b/multipath/11-dm-mpath.rules > index cd522e8c..34c21fd1 100644 > --- a/multipath/11-dm-mpath.rules > +++ b/multipath/11-dm-mpath.rules > @@ -52,8 +52,13 @@ LABEL="mpath_action" > # something that should be reacted upon since it would be useless extra work. > # It's exactly mpath's job to provide *seamless* device access to any of the > # paths that are available underneath. > +# Exception: On cold-plug, if the map had already been set up before, > +# do process upper layers, because rule processing may not necessarily have > +# completed during initrd processing. > +ACTION=="add", ENV{.MPATH_DEVICE_READY_OLD}=="1", GOTO="process_reload" > ENV{DM_SUBSYSTEM_UDEV_FLAG0}=="1", \ > ENV{DM_ACTIVATION}="0", ENV{MPATH_UNCHANGED}="1" > +LABEL="process_reload" > > # For path failed or reinstated events, unset DM_ACTIVATION. > # This is similar to the DM_SUBSYSTEM_UDEV_FLAG0 case above. > -- > 2.26.2