diff mbox series

partitions/ibm: fix non-DASD devices

Message ID 20201007124009.1438269-1-hch@lst.de (mailing list archive)
State New, archived
Headers show
Series partitions/ibm: fix non-DASD devices | expand

Commit Message

Christoph Hellwig Oct. 7, 2020, 12:40 p.m. UTC
Don't error out if the dasd_biodasdinfo symbol is not available.

Fixes: 26d7e28e3820 ("s390/dasd: remove ioctl_by_bdev calls")
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 block/partitions/ibm.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Stefan Haberland Oct. 7, 2020, 1:14 p.m. UTC | #1
thanks for the quick fix

Reviewed-by: Stefan Haberland <sth@linux.ibm.com>


Am 07.10.20 um 14:40 schrieb Christoph Hellwig:
> Don't error out if the dasd_biodasdinfo symbol is not available.
>
> Fixes: 26d7e28e3820 ("s390/dasd: remove ioctl_by_bdev calls")
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
>  block/partitions/ibm.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> 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;
>  }
Jens Axboe Oct. 7, 2020, 1:53 p.m. UTC | #2
On 10/7/20 6:40 AM, Christoph Hellwig wrote:
> Don't error out if the dasd_biodasdinfo symbol is not available.

Should this be marked for 5.8-stable?
Christoph Hellwig Oct. 7, 2020, 1:54 p.m. UTC | #3
On Wed, Oct 07, 2020 at 07:53:27AM -0600, Jens Axboe wrote:
> On 10/7/20 6:40 AM, Christoph Hellwig wrote:
> > Don't error out if the dasd_biodasdinfo symbol is not available.
> 
> Should this be marked for 5.8-stable?

The Fixes tag should automatically take care of that.
Jens Axboe Oct. 7, 2020, 1:54 p.m. UTC | #4
On 10/7/20 7:54 AM, Christoph Hellwig wrote:
> On Wed, Oct 07, 2020 at 07:53:27AM -0600, Jens Axboe wrote:
>> On 10/7/20 6:40 AM, Christoph Hellwig wrote:
>>> Don't error out if the dasd_biodasdinfo symbol is not available.
>>
>> Should this be marked for 5.8-stable?
> 
> The Fixes tag should automatically take care of that.

Not if it's not marked for stable. Maybe auto-selection will pick it
up, but it's not a given.
Christoph Hellwig Oct. 7, 2020, 2:01 p.m. UTC | #5
On Wed, Oct 07, 2020 at 07:54:45AM -0600, Jens Axboe wrote:
> On 10/7/20 7:54 AM, Christoph Hellwig wrote:
> > On Wed, Oct 07, 2020 at 07:53:27AM -0600, Jens Axboe wrote:
> >> On 10/7/20 6:40 AM, Christoph Hellwig wrote:
> >>> Don't error out if the dasd_biodasdinfo symbol is not available.
> >>
> >> Should this be marked for 5.8-stable?
> > 
> > The Fixes tag should automatically take care of that.
> 
> Not if it's not marked for stable. Maybe auto-selection will pick it
> up, but it's not a given.

Yes, trivial patches with a fixes tag get reliably picked out.  But
if you don't trust the system feel free to add a stable tag.
Jens Axboe Oct. 7, 2020, 2:02 p.m. UTC | #6
On 10/7/20 8:01 AM, Christoph Hellwig wrote:
> On Wed, Oct 07, 2020 at 07:54:45AM -0600, Jens Axboe wrote:
>> On 10/7/20 7:54 AM, Christoph Hellwig wrote:
>>> On Wed, Oct 07, 2020 at 07:53:27AM -0600, Jens Axboe wrote:
>>>> On 10/7/20 6:40 AM, Christoph Hellwig wrote:
>>>>> Don't error out if the dasd_biodasdinfo symbol is not available.
>>>>
>>>> Should this be marked for 5.8-stable?
>>>
>>> The Fixes tag should automatically take care of that.
>>
>> Not if it's not marked for stable. Maybe auto-selection will pick it
>> up, but it's not a given.
> 
> Yes, trivial patches with a fixes tag get reliably picked out.  But
> if you don't trust the system feel free to add a stable tag.

I prefer being explicit instead of assuming it'll get picked up.
I applied it for 5.9, added the tag.
Christian Borntraeger Oct. 7, 2020, 2:02 p.m. UTC | #7
On 07.10.20 16:01, Christoph Hellwig wrote:
> On Wed, Oct 07, 2020 at 07:54:45AM -0600, Jens Axboe wrote:
>> On 10/7/20 7:54 AM, Christoph Hellwig wrote:
>>> On Wed, Oct 07, 2020 at 07:53:27AM -0600, Jens Axboe wrote:
>>>> On 10/7/20 6:40 AM, Christoph Hellwig wrote:
>>>>> Don't error out if the dasd_biodasdinfo symbol is not available.
>>>>
>>>> Should this be marked for 5.8-stable?
>>>
>>> The Fixes tag should automatically take care of that.
>>
>> Not if it's not marked for stable. Maybe auto-selection will pick it
>> up, but it's not a given.
> 
> Yes, trivial patches with a fixes tag get reliably picked out.  But
> if you don't trust the system feel free to add a stable tag.

Yes, we want to have it for 5.8 stable, so a stable tag certainly does not hurt.
diff mbox series

Patch

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;
 }