On Sun, May 07, 2023 at 09:19:46PM +0200, Jan Kara wrote: > > @@ -602,6 +624,8 @@ void blk_mark_disk_dead(struct gendisk *disk) > > * Prevent new I/O from crossing bio_queue_enter(). > > */ > > blk_queue_start_drain(disk->queue); > > + > > + blk_report_disk_dead(disk); > > Hum, but this gets called from del_gendisk() after blk_drop_partitions() > happens. So how is this going to be able to iterate anything? It isn't, and doesn't work for partitions right now. I guess del_gendisk needs a bit of refacoring that we do two pases over the inode and/or move the ->mark_deal call for partitions into blk_drop_partitions.