On Tue, Aug 10, 2021 at 01:36:08AM +0100, Alasdair G Kergon wrote: > On Wed, Aug 04, 2021 at 11:41:39AM +0200, Christoph Hellwig wrote: > > allows device mapper to use the normal scheme > > of calling add_disk when it is ready to accept I/O. > For clarity, even after this patchset, the device is not ready to accept > I/O when add_disk is called. The question then arises: could we go beyond this patchset and move the add_disk further to the first resume to make the statement true? (From step 2 to 3 in my earlier response. DM_TABLE_CLEAR then also enters the mix for testing.) In the early days, in practice userspace did have to resume a device before it could be referenced in a table and lvm2 and other tools were designed with that in mind - they should always resume a device before loading a table that references it. This was because the device reference performed a size check - to make sure the access was within the device, and the device size isn't defined until a table becomes live when the device is resumed. But some multipath tables had to be set up referencing devices with not-yet-defined sizes, so the code got relaxed to accept references to zero-sized devices. (At the back of my mind I think there was some non-multipath code that found this a convenient short-cut too.) So since this "must resume before referencing in a table" hasn't been enforced for so long, I can't really say how much userspace code, if any, might now not be doing it. We and others would need to do some testing to see if we could get away with making such a change. Alasdair -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel