Thread (33 messages) 33 messages, 8 authors, 2022-08-01

Re: [dm-devel] use regular gendisk registration in device mapper v2

From: Alasdair G Kergon <agk@redhat.com>
Date: 2021-08-10 14:42:22
Also in: dm-devel

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:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help