Commit f8c8ad22 authored by Josef Bacik's avatar Josef Bacik Committed by Juerg Haefliger

nbd: use loff_t for blocksize and nbd_set_size args

BugLink: http://bugs.launchpad.net/bugs/1772575

If we have large devices (say like the 40t drive I was trying to test with) we
will end up overflowing the int arguments to nbd_set_size and not get the right
size for our device.  Fix this by using loff_t everywhere so I don't have to
think about this again.  Thanks,
Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
(back ported from commit ef77b515)
Signed-off-by: default avatarJoseph Salisbury <joseph.salisbury@canonical.com>
Acked-by: default avatarKleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
parent 1ab553c8
......@@ -54,7 +54,7 @@ struct nbd_device {
struct mutex tx_lock;
struct gendisk *disk;
int blksize;
loff_t blksize;
loff_t bytesize;
int xmit_timeout;
bool disconnect; /* a disconnect has been requested by user */
......@@ -135,7 +135,7 @@ static void nbd_size_update(struct nbd_device *nbd, struct block_device *bdev)
}
static int nbd_size_set(struct nbd_device *nbd, struct block_device *bdev,
int blocksize, int nr_blocks)
loff_t blocksize, loff_t nr_blocks)
{
int ret;
......@@ -144,7 +144,7 @@ static int nbd_size_set(struct nbd_device *nbd, struct block_device *bdev,
return ret;
nbd->blksize = blocksize;
nbd->bytesize = (loff_t)blocksize * (loff_t)nr_blocks;
nbd->bytesize = blocksize * nr_blocks;
nbd_size_update(nbd, bdev);
......@@ -959,7 +959,7 @@ static int nbd_dev_dbg_init(struct nbd_device *nbd)
return PTR_ERR(f);
}
f = debugfs_create_u32("blocksize", 0444, dir, &nbd->blksize);
f = debugfs_create_u64("blocksize", 0444, dir, &nbd->blksize);
if (IS_ERR_OR_NULL(f)) {
dev_err(nbd_to_dev(nbd), "Failed to create debugfs file 'blocksize', %ld\n",
PTR_ERR(f));
......
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