summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKarel Zak2019-01-22 11:37:35 +0100
committerKarel Zak2019-01-22 11:37:35 +0100
commit75d239ffd89b93f79059928e436f1068f402452e (patch)
treeb6e9935ec7b9e5be8dacc39cbebd40586cadfe94 /include
parentlib/loopdev: differentiate between setter()s and ioctl calls (diff)
downloadkernel-qcow2-util-linux-75d239ffd89b93f79059928e436f1068f402452e.tar.gz
kernel-qcow2-util-linux-75d239ffd89b93f79059928e436f1068f402452e.tar.xz
kernel-qcow2-util-linux-75d239ffd89b93f79059928e436f1068f402452e.zip
lib/loopdev: set blocksize when create a new device
The partition scanner in kernel depends on blocksize. We need to set the blocksize before we call LOOP_SET_STATUS64 (this ioctl triggers the scanner). This patch extends the internal API to save blocksize into loopdev context to be usable later for loopcxt_setup_device(). Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/loopdev.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/loopdev.h b/include/loopdev.h
index bbc0d3dd7..0e3a7517a 100644
--- a/include/loopdev.h
+++ b/include/loopdev.h
@@ -96,6 +96,7 @@ struct loopdev_cxt {
char *filename; /* backing file for loopcxt_set_... */
int fd; /* open(/dev/looo<N>) */
int mode; /* fd mode O_{RDONLY,RDWR} */
+ uint64_t blocksize; /* used by loopcxt_setup_device() */
int flags; /* LOOPDEV_FL_* flags */
unsigned int has_info:1; /* .info contains data */
@@ -173,6 +174,7 @@ extern int loopcxt_ioctl_blocksize(struct loopdev_cxt *lc, uint64_t blocksize);
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_blocksize(struct loopdev_cxt *lc, uint64_t blocksize);
int loopcxt_set_flags(struct loopdev_cxt *lc, uint32_t flags);
int loopcxt_set_backing_file(struct loopdev_cxt *lc, const char *filename);