Re: [PATCH 6/9] block: add a mark_dead holder operation

Christoph Hellwig
2023-05-09T13:32:16Z

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.