[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <57c35578-fb46-92f0-c1b8-9a3ee1a9e7ae@de.ibm.com>
Date: Wed, 7 Oct 2020 14:23:52 +0200
From: Christian Borntraeger <borntraeger@...ibm.com>
To: Christoph Hellwig <hch@....de>
Cc: Stefan Haberland <sth@...ux.ibm.com>, axboe@...nel.dk,
hoeppner@...ux.ibm.com, linux-s390@...r.kernel.org,
heiko.carstens@...ibm.com, gor@...ux.ibm.com,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 2/2] s390/dasd: remove ioctl_by_bdev calls
On 07.10.20 14:14, Christoph Hellwig wrote:
> On Wed, Oct 07, 2020 at 02:09:18PM +0200, Christian Borntraeger wrote:
>> Unfortunately not. On insmodding virtio_blk I do get:
>
> Yeah, the symbol_put needs to be conditional as well. New version below:
Yes, this works.
>
> diff --git a/block/partitions/ibm.c b/block/partitions/ibm.c
> index d6e18df9c53c6d..4b044e620d3534 100644
> --- a/block/partitions/ibm.c
> +++ b/block/partitions/ibm.c
> @@ -305,8 +305,6 @@ int ibm_partition(struct parsed_partitions *state)
> if (!disk->fops->getgeo)
> goto out_exit;
> fn = symbol_get(dasd_biodasdinfo);
> - if (!fn)
> - goto out_exit;
> blocksize = bdev_logical_block_size(bdev);
> if (blocksize <= 0)
> goto out_symbol;
> @@ -326,7 +324,7 @@ int ibm_partition(struct parsed_partitions *state)
> geo->start = get_start_sect(bdev);
> if (disk->fops->getgeo(bdev, geo))
> goto out_freeall;
> - if (fn(disk, info)) {
> + if (!fn || fn(disk, info)) {
> kfree(info);
> info = NULL;
> }
> @@ -370,7 +368,8 @@ int ibm_partition(struct parsed_partitions *state)
> out_nogeo:
> kfree(info);
> out_symbol:
> - symbol_put(dasd_biodasdinfo);
> + if (fn)
> + symbol_put(dasd_biodasdinfo);
> out_exit:
> return res;
> }
>
Powered by blists - more mailing lists