On Tue, 2025-09-23 at 18:12 -0400, Benjamin Marzinski wrote:
> This patchset handles 4 separate issues:
> 1. The self-preemption workaround for changing keys using REGISTER
> AND
>    IGNORE, while the path holding the reservation was down was broken
>    by a recent commit.
> 2. mpathpersist was failing a RESERVE command issued on a multipath
>    device that held a reservation, when the holding path was down.
>    Issuing an identical reserve on a device that holds a reservation
>    is supposed to succeed, and multipathd has enough information to
>    know the device is actually holding the reservation. So if
>    multipathd says that the device is holding the reservation, it
>    should not fail, even if the path holding the reservation is down.
> 3. mpathpersist was not clearing the reservation when the key holding
>    it was unregistered, if the path holding the reservation was down.
> 4. When unregistering a key that holds a reservation, depending on
> the
>    order that the paths got unregistered, there was a window where
>    IO going to the device could fail. This should not happen because
>    the reservation should be removed and the key should be
> unregistered
>    atomically.
> 
> Benjamin Marzinski (4):
>   libmpathpersist: Fix REGISTER AND IGNORE while holding a
> reservation
>   libmpathpersist: Handle RESERVE with reservation held by failed
> path
>   libmpathpersist: use check_holding_reservation in mpath_prout_rel
>   libmpathpersist: Fix unregistering while holding the reservation
> 
>  libmpathpersist/mpath_persist_int.c | 199 +++++++++++++++++---------
> --
>  1 file changed, 125 insertions(+), 74 deletions(-)

For the series: 
Reviewed-by: Martin Wilck <[email protected]>

Reply via email to