]> git.itanic.dy.fi Git - linux-stable/commit
block: Fix partition support for host aware zoned block devices
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Fri, 21 Feb 2020 01:37:08 +0000 (10:37 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Mar 2020 06:19:10 +0000 (07:19 +0100)
commitb032c163acfbd7fe4aa2ff189d9cc55e9791ad5d
tree114dabb3eafa078d0e38036b5937a57c25bcfa2b
parent1839a61e26ae5f6cdf228e3aa72067d891dc5953
block: Fix partition support for host aware zoned block devices

commit b53df2e7442c73a932fb74228147fb946e531585 upstream.

Commit b72053072c0b ("block: allow partitions on host aware zone
devices") introduced the helper function disk_has_partitions() to check
if a given disk has valid partitions. However, since this function result
directly depends on the disk partition table length rather than the
actual existence of valid partitions in the table, it returns true even
after all partitions are removed from the disk. For host aware zoned
block devices, this results in zone management support to be kept
disabled even after removing all partitions.

Fix this by changing disk_has_partitions() to walk through the partition
table entries and return true if and only if a valid non-zero size
partition is found.

Fixes: b72053072c0b ("block: allow partitions on host aware zone devices")
Cc: stable@vger.kernel.org # 5.5
Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/genhd.c
include/linux/genhd.h