Skip to content
  • Chaitanya Kulkarni's avatar
    null_blk: remove duplicate check for report zone · 154085ff
    Chaitanya Kulkarni authored
    
    
    This patch removes the check in the null_blk_zoned for report zone
    command, where it checks for the dev-,>zoned before executing the report
    zone.
    
    The null_zone_report() function is a block_device operation callback
    which is initialized in the null_blk_main.c and gets called as a part
    of blkdev for report zone IOCTL (BLKREPORTZONE).
    
    blkdev_ioctl()
    blkdev_report_zones_ioctl()
            blkdev_report_zones()
                    blk_report_zones()
                            disk->fops->report_zones()
                                    nullb_zone_report();
    
    The null_zone_report() will never get executed on the non-zoned block
    device, in the non zoned block device blk_queue_is_zoned() will always
    be false which is first check the blkdev_report_zones_ioctl()
    before actual low level driver report zone callback is executed.
    
    Here is the detailed scenario:-
    
    1. modprobe null_blk
    null_init
    null_alloc_dev
            dev->zoned = 0
    null_add_dev
            dev->zoned == 0
                    so we don't set the q->limits.zoned = BLK_ZONED_HR
    
    2. blkzone report /dev/nullb0
    
    blkdev_ioctl()
    blkdev_report_zones_ioctl()
            blk_queue_is_zoned()
                    blk_queue_is_zoned
                            q->limits.zoned == 0
                            return false
            if (!blk_queue_is_zoned(q)) <--- true
                    return -ENOTTY;
    
    Reviewed-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
    Reviewed-by: default avatarBob Liu <bob.liu@oracle.com>
    Signed-off-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    154085ff