nbd: use correct div_s64 helper
authorArnd Bergmann <arnd@arndb.de>
Fri, 4 Mar 2016 23:49:31 +0000 (00:49 +0100)
committerJens Axboe <axboe@fb.com>
Sat, 5 Mar 2016 00:20:12 +0000 (17:20 -0700)
The do_div() macro now checks its arguments for the correct type,
and refuses anything other than u64, so we get a warning about
nbd_ioctl passing in an loff_t:

drivers/block/nbd.c: In function '__nbd_ioctl':
drivers/block/nbd.c:757:77: error: comparison of distinct pointer types lacks a cast [-Werror]

This changes the nbd code to use div_s64() instead, which takes
a signed argument.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 37091fdd831f ("nbd: Create size change events for userspace")
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/nbd.c

index f6b51d76e578d9a489983e8db7ab78827de7104d..08afbc7a2bb87171a2c4255c74705d39dd7a2b94 100644 (file)
@@ -753,8 +753,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
        }
 
        case NBD_SET_BLKSIZE: {
-               loff_t bsize = nbd->bytesize;
-               do_div(bsize, arg);
+               loff_t bsize = div_s64(nbd->bytesize, arg);
 
                return nbd_size_set(nbd, bdev, arg, bsize);
        }