mirror of https://github.com/torvalds/linux.git
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> |
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| acorn.c | ||
| aix.c | ||
| amiga.c | ||
| atari.c | ||
| atari.h | ||
| check.h | ||
| cmdline.c | ||
| core.c | ||
| efi.c | ||
| efi.h | ||
| ibm.c | ||
| karma.c | ||
| ldm.c | ||
| ldm.h | ||
| mac.c | ||
| mac.h | ||
| msdos.c | ||
| osf.c | ||
| sgi.c | ||
| sun.c | ||
| sysv68.c | ||
| ultrix.c | ||