On Tue, Nov 15 2022 at 9:10P -0500, Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote: > From: Christoph Hellwig <hch@xxxxxx> > > dm is a bit special in that it opens the underlying devices. Commit > 89f871af1b26 ("dm: delay registering the gendisk") tried to accommodate > that by allowing to add the holder to the list before add_gendisk and > then just add them to sysfs once add_disk is called. But that leads to > really odd lifetime problems and error handling problems as we can't > know the state of the kobjects and don't unwind properly. To fix this > switch to just registering all existing table_devices with the holder > code right after add_disk, and remove them before calling del_gendisk. > > Fixes: 89f871af1b26 ("dm: delay registering the gendisk") > Reported-by: Yu Kuai <yukuai3@xxxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> Reviewed-by: Mike Snitzer <snitzer@xxxxxxxxxx>