Commit eec2d0c16d for qemu.org
commit eec2d0c16d4a2541a14f5a1867812a508ba7b95e
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: Wed Oct 14 10:28:47 2026 -0400
scsi: document PR_HELPER_CLEANUP command
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Link: https://lore.kernel.org/r/20261014142847.1354701-1-stefanha@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
diff --git a/docs/interop/pr-helper.rst b/docs/interop/pr-helper.rst
index e926f0a6c9..8ea83dd3d7 100644
--- a/docs/interop/pr-helper.rst
+++ b/docs/interop/pr-helper.rst
@@ -54,7 +54,8 @@ together with the SCSI CDB using ancillary data.
The CDB has the following limitations:
- the command (stored in the first byte) must be one of 0x5E
- (PERSISTENT RESERVE IN) or 0x5F (PERSISTENT RESERVE OUT).
+ (PERSISTENT RESERVE IN), 0x5F (PERSISTENT RESERVE OUT), or 0xFF (PR HELPER
+ CLEANUP, see below).
- the allocation length (stored in bytes 7-8 of the CDB for PERSISTENT
RESERVE IN) or parameter list length (stored in bytes 5-8 of the CDB
@@ -63,6 +64,19 @@ The CDB has the following limitations:
For PERSISTENT RESERVE OUT, the parameter list is sent right after the
CDB. The length of the parameter list is taken from the CDB itself.
+The PR HELPER CLEANUP command is a vendor-specific command without a parameter
+list that has the following effect on Linux device-mapper multipath devices and
+otherwise has no effect. This command is intended for cleaning up the multipath
+device on the source host after live migration has completed successfully:
+
+1. Sends "unsetprkey map <dm-target>" to multipathd.
+
+2. Sends "unsetprstatus map <dm-target>" to multipathd.
+
+3. Performs PERSISTENT RESERVE OUT with the REGISTER AND IGNORE EXISTING KEY
+ service action containing zero values for the RESERVATION KEY and SERVICE
+ ACTION RESERVATION KEY.
+
The helper's reply has the following structure:
- 4 bytes for the SCSI status