Commit 7370997d authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

partitions/ibm: fix non-DASD devices

Don't error out if the dasd_biodasdinfo symbol is not available.

Cc: stable@vger.kernel.org
Fixes: 26d7e28e ("s390/dasd: remove ioctl_by_bdev calls")
Reported-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Tested-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: default avatarStefan Haberland <sth@linux.ibm.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 6d53a9fe
...@@ -305,8 +305,6 @@ int ibm_partition(struct parsed_partitions *state) ...@@ -305,8 +305,6 @@ int ibm_partition(struct parsed_partitions *state)
if (!disk->fops->getgeo) if (!disk->fops->getgeo)
goto out_exit; goto out_exit;
fn = symbol_get(dasd_biodasdinfo); fn = symbol_get(dasd_biodasdinfo);
if (!fn)
goto out_exit;
blocksize = bdev_logical_block_size(bdev); blocksize = bdev_logical_block_size(bdev);
if (blocksize <= 0) if (blocksize <= 0)
goto out_symbol; goto out_symbol;
...@@ -326,7 +324,7 @@ int ibm_partition(struct parsed_partitions *state) ...@@ -326,7 +324,7 @@ int ibm_partition(struct parsed_partitions *state)
geo->start = get_start_sect(bdev); geo->start = get_start_sect(bdev);
if (disk->fops->getgeo(bdev, geo)) if (disk->fops->getgeo(bdev, geo))
goto out_freeall; goto out_freeall;
if (fn(disk, info)) { if (!fn || fn(disk, info)) {
kfree(info); kfree(info);
info = NULL; info = NULL;
} }
...@@ -370,7 +368,8 @@ int ibm_partition(struct parsed_partitions *state) ...@@ -370,7 +368,8 @@ int ibm_partition(struct parsed_partitions *state)
out_nogeo: out_nogeo:
kfree(info); kfree(info);
out_symbol: out_symbol:
symbol_put(dasd_biodasdinfo); if (fn)
symbol_put(dasd_biodasdinfo);
out_exit: out_exit:
return res; return res;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment