diff options
author | Ming Lei <ming.lei@redhat.com> | 2020-07-15 16:36:19 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-07-15 09:23:42 -0600 |
commit | d0f0f1b4c55e9e1b10e47399f544be52567d9fc3 (patch) | |
tree | e62b1fba11c17bb977bb1260178e1c91776bb129 /tools/build | |
parent | 9054650fac24b784df8500aba2869ebf240d069a (diff) | |
download | lwn-d0f0f1b4c55e9e1b10e47399f544be52567d9fc3.tar.gz lwn-d0f0f1b4c55e9e1b10e47399f544be52567d9fc3.zip |
block: always remove partitions from blk_drop_partitions()
In theory, when GENHD_FL_NO_PART_SCAN is set, no partitions can be created
on one disk. However, ioctl(BLKPG, BLKPG_ADD_PARTITION) doesn't check
GENHD_FL_NO_PART_SCAN, so partitions still can be added even though
GENHD_FL_NO_PART_SCAN is set.
So far blk_drop_partitions() only removes partitions when disk_part_scan_enabled()
return true. This way can make ghost partition on loop device after changing/clearing
FD in case that PARTSCAN is disabled, such as partitions can be added
via 'parted' on loop disk even though GENHD_FL_NO_PART_SCAN is set.
Fix this issue by always removing partitions in blk_drop_partitions(), and
this way is correct because the current code supposes that no partitions
can be added in case of GENHD_FL_NO_PART_SCAN.
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'tools/build')
0 files changed, 0 insertions, 0 deletions