From: Karel Zak Date: Wed, 4 Oct 2017 08:08:08 +0000 (+0200) Subject: losetup: fix conflicting types for ‘loopcxt_set_blocksize’ X-Git-Tag: v2.31~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c4e60bc0807b04ab104594abc83301481d5d5995;p=thirdparty%2Futil-linux.git losetup: fix conflicting types for ‘loopcxt_set_blocksize’ Reported-by: Lars Wendler Signed-off-by: Karel Zak --- diff --git a/lib/loopdev.c b/lib/loopdev.c index 66fa4f6694..819aada324 100644 --- a/lib/loopdev.c +++ b/lib/loopdev.c @@ -1430,7 +1430,11 @@ int loopcxt_set_dio(struct loopdev_cxt *lc, unsigned long use_dio) return 0; } -int loopcxt_set_blocksize(struct loopdev_cxt *lc, unsigned long blocksize) +/* + * Kernel uses "unsigned long" as ioctl arg, but we use u64 for all sizes to + * keep loopdev internal API simple. + */ +int loopcxt_set_blocksize(struct loopdev_cxt *lc, uint64_t blocksize) { int fd = loopcxt_get_fd(lc); @@ -1438,7 +1442,7 @@ int loopcxt_set_blocksize(struct loopdev_cxt *lc, unsigned long blocksize) return -EINVAL; /* Kernels prior to v4.14 don't support this ioctl */ - if (ioctl(fd, LOOP_SET_BLOCK_SIZE, blocksize) < 0) { + if (ioctl(fd, LOOP_SET_BLOCK_SIZE, (unsigned long) blocksize) < 0) { int rc = -errno; DBG(CXT, ul_debugobj(lc, "LOOP_SET_BLOCK_SIZE failed: %m")); return rc;