On Wed, May 08, 2024 at 05:36:20PM +0800, Changqi Lu wrote:
> Hi,
>
> I am going to introduce persistent reservation for QEMU block.
> There are three parts in this series:
>
> Firstly, at the block layer, the commit abstracts seven APIs related to
> the persistent reservation command. These APIs including reading keys,
> reading reservations, registering, reserving, releasing, clearing and preempting.
>
> Next, the commit implements the necessary pr-related operation APIs for both the
> SCSI protocol and NVMe protocol at the device layer. This ensures that the necessary
> functionality is available for handling persistent reservations in these protocols.
>
> Finally, the commit includes adaptations to the iscsi driver at the driver layer
> to verify the correct implementation and functionality of the changes.
>
> With these changes, GFS works fine in the guest. Also, sg-utils(for SCSI block) and
> nvme-cli(for NVMe block) work fine too.
What is the relationship to the existing PRManager functionality
(docs/interop/pr-helper.rst) where block/file-posix.c interprets SCSI
ioctls and sends persistent reservation requests to an external helper
process?
I wonder if block/file-posix.c can implement the new block driver
callbacks using pr_mgr (while keeping the existing scsi-generic
support).
Stefan