diff options
author | Damien Le Moal <damien.lemoal@wdc.com> | 2019-11-11 11:39:25 +0900 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-11-12 19:11:57 -0700 |
commit | 5eac3eb30c9ab9ee7fe2bd9aa9db6373cabb77f8 (patch) | |
tree | d748a76fbb49647100e675848603b46b124e5746 /block/blk-core.c | |
parent | ceeb373aa6b9eb75ed3278d4b3ff2318c304e70c (diff) | |
download | lwn-5eac3eb30c9ab9ee7fe2bd9aa9db6373cabb77f8.tar.gz lwn-5eac3eb30c9ab9ee7fe2bd9aa9db6373cabb77f8.zip |
block: Remove partition support for zoned block devices
No known partitioning tool supports zoned block devices, especially the
host managed flavor with strong sequential write constraints.
Furthermore, there are also no known user nor use cases for partitioned
zoned block devices.
This patch removes partition device creation for zoned block devices,
which allows simplifying the processing of zone commands for zoned
block devices. A warning is added if a partition table is found on the
device.
For report zones operations no zone sector information remapping is
necessary anymore, simplifying the code. Of note is that remapping of
zone reports for DM targets is still necessary as done by
dm_remap_zone_report().
Similarly, remaping of a zone reset bio is not necessary anymore.
Testing for the applicability of the zone reset all request also becomes
simpler and only needs to check that the number of sectors of the
requested zone range is equal to the disk capacity.
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-core.c')
-rw-r--r-- | block/blk-core.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index f0d82227a2fc..a1e228752083 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -851,11 +851,7 @@ static inline int blk_partition_remap(struct bio *bio) if (unlikely(bio_check_ro(bio, p))) goto out; - /* - * Zone management bios do not have a sector count but they do have - * a start sector filled out and need to be remapped. - */ - if (bio_sectors(bio) || op_is_zone_mgmt(bio_op(bio))) { + if (bio_sectors(bio)) { if (bio_check_eod(bio, part_nr_sects_read(p))) goto out; bio->bi_iter.bi_sector += p->start_sect; |