Re: [PATCH v4 2/2] s390/dasd: remove ioctl_by_bdev calls

From: Stefan Haberland
Date: Wed Oct 07 2020 - 07:09:44 EST


Am 07.10.20 um 12:44 schrieb Christian Borntraeger:
>
> On 07.10.20 12:39, Christoph Hellwig wrote:
>> On Wed, Oct 07, 2020 at 11:34:17AM +0200, Christian Borntraeger wrote:
>>> On 19.05.20 16:22, Stefan Haberland wrote:
>>>> The IBM partition parser requires device type specific information only
>>>> available to the DASD driver to correctly register partitions. The
>>>> current approach of using ioctl_by_bdev with a fake user space pointer
>>>> is discouraged.
>>>>
>>>> Fix this by replacing IOCTL calls with direct in-kernel function calls.
>>>>
>>>> Suggested-by: Christoph Hellwig <hch@xxxxxx>
>>>> Signed-off-by: Stefan Haberland <sth@xxxxxxxxxxxxx>
>>>> Reviewed-by: Jan Hoeppner <hoeppner@xxxxxxxxxxxxx>
>>>> Reviewed-by: Peter Oberparleiter <oberpar@xxxxxxxxxxxxx>
>>> FWIW, this broken the ibm-partition code for virtio-blk, when CONFIG_DASD=m.
>> What are the symptoms?
> During boot I normally have
>
> [ 0.930231] virtio_blk virtio1: [vda] 5409180 4096-byte logical blocks (22.2 GB/20.6 GiB)
> [ 0.930233] vda: detected capacity change from 0 to 22156001280
> [ 0.932806] vda:VOL1/ 0X3333: vda1 vda2 vda3
>
> With this change, the last line is no longer there (if CONFIG_DASD=m) and this also
> reflects itself in /proc/partitions. The partitions are no longer detected.

OK, looks like the module is not loaded and with

        fn = symbol_get(dasd_biodasdinfo);
        if (!fn)
                goto out_exit;

the ibm.c partition detection aborts.

Solution could be not to exit in this case but jump to the probing
process. I will have a closer look at this.