diff options
author | Stanislav Brabec | 2017-09-26 16:14:51 +0200 |
---|---|---|
committer | Karel Zak | 2017-09-27 14:30:02 +0200 |
commit | a1a41597bfd55e709024bd91aaf024159362679c (patch) | |
tree | ee740d8df1db5485c5886ff3f753927707752f1a /include | |
parent | docs: add exec() exit codes to TODO (diff) | |
download | kernel-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.h | 3 |
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); |