The io_uring_cmd ioengine assumes that logical block size is power of 2. In case of extended LBA where metadata is transferred as part of LBA this is not correct. Use division operation for that. The existing calculation for power of 2 LBA remains the same. The current implementation doesn't support protection info and metadata transferred as separate buffer, return error for these scenarios. Add checks to verify that block sizes are multiple of LBA size. Add support for 64 LBA formats as per the latest NVM command set specification. Ankit Kumar (1): engines/io_uring: io_uring_cmd engine cleanup and fixes engines/io_uring.c | 31 +++++++++++++++++++++---- engines/nvme.c | 57 +++++++++++++++++++++++++++++++++++++--------- engines/nvme.h | 3 ++- 3 files changed, 75 insertions(+), 16 deletions(-) -- 2.25.1