Implements a block device write logging system, similar to Linux kernel device mapper dm-log-writes. The write operations that are performed on a block device are logged to a file or another block device. The write log format is identical to the dm-log-writes format. Currently, log markers are not supported. This functionality can be used for crash consistency and fs consistency testing. By implementing it in qemu, tests utilizing write logs can be be used to test non-Linux drivers and older kernels. The driver accepts an optional parameter to set the sector size used for logging. This makes the driver require all requests to be aligned to this sector size and also makes offsets and sizes of writes in the log metadata to be expressed in terms of this value (the log format has a granularity of one sector for offsets and sizes). This allows accurate logging of writes to guest block devices that have unusual sector sizes. The implementation is based on the blkverify and blkdebug block drivers. Signed-off-by: Aapo Vienamo <aapo@tuxera.com> Signed-off-by: Ari Sundholm <ari@tuxera.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
54 lines
2 KiB
Makefile
54 lines
2 KiB
Makefile
block-obj-y += raw-format.o qcow.o vdi.o vmdk.o cloop.o bochs.o vpc.o vvfat.o dmg.o
|
|
block-obj-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o qcow2-cache.o qcow2-bitmap.o
|
|
block-obj-y += qed.o qed-l2-cache.o qed-table.o qed-cluster.o
|
|
block-obj-y += qed-check.o
|
|
block-obj-y += vhdx.o vhdx-endian.o vhdx-log.o
|
|
block-obj-y += quorum.o
|
|
block-obj-y += parallels.o blkdebug.o blkverify.o blkreplay.o
|
|
block-obj-y += blklogwrites.o
|
|
block-obj-y += block-backend.o snapshot.o qapi.o
|
|
block-obj-$(CONFIG_WIN32) += file-win32.o win32-aio.o
|
|
block-obj-$(CONFIG_POSIX) += file-posix.o
|
|
block-obj-$(CONFIG_LINUX_AIO) += linux-aio.o
|
|
block-obj-y += null.o mirror.o commit.o io.o create.o
|
|
block-obj-y += throttle-groups.o
|
|
block-obj-$(CONFIG_LINUX) += nvme.o
|
|
|
|
block-obj-y += nbd.o nbd-client.o sheepdog.o
|
|
block-obj-$(CONFIG_LIBISCSI) += iscsi.o
|
|
block-obj-$(if $(CONFIG_LIBISCSI),y,n) += iscsi-opts.o
|
|
block-obj-$(CONFIG_LIBNFS) += nfs.o
|
|
block-obj-$(CONFIG_CURL) += curl.o
|
|
block-obj-$(CONFIG_RBD) += rbd.o
|
|
block-obj-$(CONFIG_GLUSTERFS) += gluster.o
|
|
block-obj-$(CONFIG_VXHS) += vxhs.o
|
|
block-obj-$(CONFIG_LIBSSH2) += ssh.o
|
|
block-obj-y += accounting.o dirty-bitmap.o
|
|
block-obj-y += write-threshold.o
|
|
block-obj-y += backup.o
|
|
block-obj-$(CONFIG_REPLICATION) += replication.o
|
|
block-obj-y += throttle.o copy-on-read.o
|
|
|
|
block-obj-y += crypto.o
|
|
|
|
common-obj-y += stream.o
|
|
|
|
nfs.o-libs := $(LIBNFS_LIBS)
|
|
iscsi.o-cflags := $(LIBISCSI_CFLAGS)
|
|
iscsi.o-libs := $(LIBISCSI_LIBS)
|
|
curl.o-cflags := $(CURL_CFLAGS)
|
|
curl.o-libs := $(CURL_LIBS)
|
|
rbd.o-cflags := $(RBD_CFLAGS)
|
|
rbd.o-libs := $(RBD_LIBS)
|
|
gluster.o-cflags := $(GLUSTERFS_CFLAGS)
|
|
gluster.o-libs := $(GLUSTERFS_LIBS)
|
|
vxhs.o-libs := $(VXHS_LIBS)
|
|
ssh.o-cflags := $(LIBSSH2_CFLAGS)
|
|
ssh.o-libs := $(LIBSSH2_LIBS)
|
|
block-obj-$(if $(CONFIG_BZIP2),m,n) += dmg-bz2.o
|
|
dmg-bz2.o-libs := $(BZIP2_LIBS)
|
|
qcow.o-libs := -lz
|
|
linux-aio.o-libs := -laio
|
|
parallels.o-cflags := $(LIBXML2_CFLAGS)
|
|
parallels.o-libs := $(LIBXML2_LIBS)
|