s390/dcssblk: fix device size calculation in dcssblk_direct_access()
commit a63f53e34db8b49675448d03ae324f6c5bc04fe6 upstream. Since commit dd22f551 "block: Change direct_access calling convention", the device size calculation in dcssblk_direct_access() is off-by-one. This results in bdev_direct_access() always returning -ENXIO because the returned value is not page aligned. Fix this by adding 1 to the dev_sz calculation. Fixes: dd22f551 ("block: Change direct_access calling convention") Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ec50c80c78
commit
792bd1fb5b
@ -892,7 +892,7 @@ dcssblk_direct_access (struct block_device *bdev, sector_t secnum,
|
||||
dev_info = bdev->bd_disk->private_data;
|
||||
if (!dev_info)
|
||||
return -ENODEV;
|
||||
dev_sz = dev_info->end - dev_info->start;
|
||||
dev_sz = dev_info->end - dev_info->start + 1;
|
||||
offset = secnum * 512;
|
||||
addr = (void *) (dev_info->start + offset);
|
||||
*pfn = virt_to_phys(addr) >> PAGE_SHIFT;
|
||||
|
Loading…
x
Reference in New Issue
Block a user