summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorStanislav Brabec2017-09-26 16:14:51 +0200
committerKarel Zak2017-09-27 14:30:02 +0200
commita1a41597bfd55e709024bd91aaf024159362679c (patch)
treeee740d8df1db5485c5886ff3f753927707752f1a /include
parentdocs: add exec() exit codes to TODO (diff)
downloadkernel-qcow2-util-linux-a1a41597bfd55e709024bd91aaf024159362679c.tar.gz
kernel-qcow2-util-linux-a1a41597bfd55e709024bd91aaf024159362679c.tar.xz
kernel-qcow2-util-linux-a1a41597bfd55e709024bd91aaf024159362679c.zip
losetup: Add support for logical block size
Kernel since 4.14 supports setting of logical block size[1]. It allows to create loop devices that report logical block size different from 512. Add support for this feature to losetup. References: [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/block/loop.c?id=89e4fdecb51cf5535867026274bc97de9480ade5 [kzak@redhat.com: - fix loopcxt_get_blocksize() - remove lo_blocksize from loop_info64] Signed-off-by: Stanislav Brabec <sbrabec@suse.cz> Cc: Ming Lei <ming.lei@redhat.com> Cc: Hannes Reinecke <hare@suse.com> Cc: Omar Sandoval <osandov@fb.com> Cc: Jens Axboe <axboe@kernel.dk> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/loopdev.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/loopdev.h b/include/loopdev.h
index 953d2db89..121fb846b 100644
--- a/include/loopdev.h
+++ b/include/loopdev.h
@@ -24,6 +24,7 @@
/* #define LOOP_CHANGE_FD 0x4C06 */
#define LOOP_SET_CAPACITY 0x4C07
#define LOOP_SET_DIRECT_IO 0x4C08
+#define LOOP_SET_BLOCK_SIZE 0x4C09
/* /dev/loop-control interface */
#ifndef LOOP_CTL_ADD
@@ -173,11 +174,13 @@ int loopcxt_set_offset(struct loopdev_cxt *lc, uint64_t offset);
int loopcxt_set_sizelimit(struct loopdev_cxt *lc, uint64_t sizelimit);
int loopcxt_set_flags(struct loopdev_cxt *lc, uint32_t flags);
int loopcxt_set_backing_file(struct loopdev_cxt *lc, const char *filename);
+int loopcxt_set_blocksize(struct loopdev_cxt *lc, uint64_t blocksize);
extern char *loopcxt_get_backing_file(struct loopdev_cxt *lc);
extern int loopcxt_get_backing_devno(struct loopdev_cxt *lc, dev_t *devno);
extern int loopcxt_get_backing_inode(struct loopdev_cxt *lc, ino_t *ino);
extern int loopcxt_get_offset(struct loopdev_cxt *lc, uint64_t *offset);
+extern int loopcxt_get_blocksize(struct loopdev_cxt *lc, uint64_t *blocksize);
extern int loopcxt_get_sizelimit(struct loopdev_cxt *lc, uint64_t *size);
extern int loopcxt_get_encrypt_type(struct loopdev_cxt *lc, uint32_t *type);
extern const char *loopcxt_get_crypt_name(struct loopdev_cxt *lc);