[PATCH 11/13] libmultipath: Add support for block device IOCTL

John Garry john.g.garry at oracle.com
Mon Mar 2 03:19:11 PST 2026


On 27/02/2026 19:52, Benjamin Marzinski wrote:
>> diff --git a/include/linux/multipath.h b/include/linux/multipath.h
>> index 3846ea8cfd319..40dda6a914c5f 100644
>> --- a/include/linux/multipath.h
>> +++ b/include/linux/multipath.h
>> @@ -72,6 +72,9 @@ struct mpath_head_template {
>>   	bool (*is_disabled)(struct mpath_device *);
>>   	bool (*is_optimized)(struct mpath_device *);
>>   	enum mpath_access_state (*get_access_state)(struct mpath_device *);
>> +	int (*bdev_ioctl)(struct block_device *bdev, struct mpath_device *,
>> +			blk_mode_t mode, unsigned int cmd, unsigned long arg,
>> +			int srcu_idx);
> I don't know that this API is going to work out. SCSI persistent
> reservations need access to all the mpath_devices, not just one, and
> they are commonly handled via SG_IO ioctls. Unless you want to disallow
> SCSI persistent reservations via SG_IO,

I want to make the multipathed /dev/sdX behave same as non-multipathed, 
so should then support it.

> you need to be able to detect
> them, and handle them using the persistent reservation code with the
> mpath_head.

Understood, I am going to check this PR handling further.

thanks!



More information about the Linux-nvme mailing list