In this current design, The GET LBA STATUS parameter data only contains an eight-byte header + one LBA status descriptor.
How to test: host:~ # qemu-system-x86_64 \ ... -drive file=/vm0/disk0.raw,format=raw,if=none,id=drive0,discard=unmap \ -device scsi-hd,id=scsi0,drive=drive0 \ ... guest:~ # dd if=/dev/zero of=/dev/sda bs=512 seek=1024 count=256 guest:~ # sg_unmap -l 1024 -n 32 /dev/sda guest:~ # sg_get_lba_status /dev/sda -l 1024 No indication of the completion condition RTP=0 descriptor LBA: 0x0000000000000400 blocks: 32 deallocated Lin Ma (4): block: Add bdrv_co_get_lba_status block: Add GET LBA STATUS support block: Add block accounting code for GET LBA STATUS scsi-disk: Add support for the GET LBA STATUS 16 command block/block-backend.c | 38 ++++++++++++++ block/io.c | 43 ++++++++++++++++ hw/scsi/scsi-disk.c | 92 ++++++++++++++++++++++++++++++++++ include/block/accounting.h | 1 + include/scsi/constants.h | 1 + include/sysemu/block-backend.h | 2 + 6 files changed, 177 insertions(+) -- 2.24.0