Thread (12 messages) 12 messages, 2 authors, 2020-05-07

Re: [PATCH 1/1] s390/dasd: remove ioctl_by_bdev from DASD driver

From: Stefan Haberland <sth@linux.ibm.com>
Date: 2020-05-04 08:45:46
Also in: linux-s390, lkml

Am 30.04.20 um 16:02 schrieb Stefan Haberland:
Am 30.04.20 um 15:13 schrieb Christoph Hellwig:
quoted
On Thu, Apr 30, 2020 at 01:17:54PM +0200, Stefan Haberland wrote:
quoted
Remove the calls to ioctl_by_bdev from the DASD partition detection code
to enable the removal of the specific code.

To do so reuse the gendisk private_data pointer and not only provide a
pointer to the devmap but provide a new structure containing a pointer
to the devmap as well as all required information for the partition
detection. This makes it independent from the dasd_information2_t
structure.
I think sharing the data structure in private data is pretty dangerous.
Thought of this as well. This is why I check for the major number before I
use the private pointer to reference the data structure. Thought this would
be enough checking.
Do you think this is not sufficient?
quoted
In the meantime I thought of another idea - the partition code could
do a symbol_get of a symbol exported by the dasd driver and use that
to query the information.
Then I would need to export a lot of DASD internal structures to be
available
in thepartition detection code if I would like to walk down our device
map to
findthe corresponding device for example. Not sure if this is that easy.
I did some additional research on this.
What I could imagine:

The gendisk->private_data pointer currently contains a pointer to
the dasd_devmap structure. This one is also reachable by iterating
over an exported dasd_hashlist.
So I could export the dasd_hashlist symbol, iterate over it and try
to find the dasd_devmap pointer I have from the gendisk->private_data
pointer.
This would ensure that the gendisk belongs to the DASD driver and I
could use the additional information that is somehow reachable through
the gendisk->private_data pointer.

But again, I am not sure if this additional code and effort is needed.
From my point of view checking the gendisk->major for DASD_MAJOR is
OK to ensure that the device belongs to the DASD driver.

What do you think?

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help