Skip to content
  • Damien Le Moal's avatar
    sd_zbc: Force use of READ16/WRITE16 · c6463c65
    Damien Le Moal authored
    
    
    Normally, sd_read_capacity sets sdp->use_16_for_rw to 1 based on the
    disk capacity so that READ16/WRITE16 are used for large drives.
    However, for a zoned disk with RC_BASIS set to 0, the capacity reported
    through READ_CAPACITY may be very small, leading to use_16_for_rw not being
    set and READ10/WRITE10 commands being used, even after the actual zoned disk
    capacity is corrected in sd_zbc_read_zones. This causes LBA offset overflow for
    accesses beyond 2TB.
    
    As the ZBC standard makes it mandatory for ZBC drives to support
    the READ16/WRITE16 commands anyway, make sure that use_16_for_rw is set.
    
    Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
    eviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    c6463c65