qemu-e2k/block
Max Reitz 228345bf5d block: Support BDRV_REQ_WRITE_UNCHANGED in filters
Update the rest of the filter drivers to support
BDRV_REQ_WRITE_UNCHANGED.  They already forward write request flags to
their children, so we just have to announce support for it.

This patch does not cover the replication driver because that currently
does not support flags at all, and because it just grabs the WRITE
permission for its children when it can, so we should be fine just
submitting the incoming WRITE_UNCHANGED requests as normal writes.

It also does not cover format drivers for similar reasons.  They all use
bdrv_format_default_perms() as their .bdrv_child_perm() implementation
so they just always grab the WRITE permission for their file children
whenever possible.  In addition, it often would be difficult to
ascertain whether incoming unchanging writes end up as unchanging writes
in their files.  So we just leave them as normal potentially changing
writes.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-id: 20180421132929.21610-7-mreitz@redhat.com
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2018-05-15 16:15:21 +02:00
..
accounting.c block/accounting: introduce latency histogram 2018-03-19 14:58:37 -05:00
backup.c blockjob: Add block_job_driver() 2018-05-15 16:11:50 +02:00
blkdebug.c block: Support BDRV_REQ_WRITE_UNCHANGED in filters 2018-05-15 16:15:21 +02:00
blkreplay.c block: Support BDRV_REQ_WRITE_UNCHANGED in filters 2018-05-15 16:15:21 +02:00
blkverify.c block: Support BDRV_REQ_WRITE_UNCHANGED in filters 2018-05-15 16:15:21 +02:00
block-backend.c block-backend: simplify blk_get_aio_context 2018-05-15 16:11:41 +02:00
bochs.c
cloop.c
commit.c blockjob: Introduce block_job_ratelimit_get_delay() 2018-05-15 16:11:50 +02:00
copy-on-read.c block: Support BDRV_REQ_WRITE_UNCHANGED in filters 2018-05-15 16:15:21 +02:00
create.c
crypto.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
crypto.h
curl.c
dirty-bitmap.c
dmg-bz2.c
dmg.c
dmg.h
file-posix.c block/file-posix: add x-check-page-cache=on|off option 2018-05-11 16:43:05 +01:00
file-win32.c file-win32: Switch to byte-based callbacks 2018-05-15 16:11:41 +02:00
gluster.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
io.c block: Set BDRV_REQ_WRITE_UNCHANGED for COR writes 2018-05-15 16:15:21 +02:00
iscsi-opts.c
iscsi.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
linux-aio.c
Makefile.objs block: Add COR filter driver 2018-05-15 16:15:21 +02:00
mirror.c block: Support BDRV_REQ_WRITE_UNCHANGED in filters 2018-05-15 16:15:21 +02:00
nbd-client.c nbd/client: Relax handling of large NBD_CMD_BLOCK_STATUS reply 2018-05-04 08:23:39 -05:00
nbd-client.h
nbd.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
nfs.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
null.c null: Switch to byte-based read/write 2018-05-15 16:11:41 +02:00
nvme.c qobject: Modify qobject_ref() to return obj 2018-05-04 08:27:53 +02:00
parallels.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
parallels.h
qapi.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
qcow2-bitmap.c qcow2-bitmap: add qcow2_reopen_bitmaps_rw_hint() 2018-03-26 21:17:24 +02:00
qcow2-cache.c
qcow2-cluster.c
qcow2-refcount.c Fix error message about compressed clusters with OFLAG_COPIED 2018-05-15 16:15:21 +02:00
qcow2-snapshot.c
qcow2.c qcow2: Give the refcount cache the minimum possible size by default 2018-05-15 16:15:21 +02:00
qcow2.h qcow2: Give the refcount cache the minimum possible size by default 2018-05-15 16:15:21 +02:00
qcow.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
qed-check.c
qed-cluster.c
qed-l2-cache.c
qed-table.c
qed.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
qed.h
quorum.c block/quorum: Support BDRV_REQ_WRITE_UNCHANGED 2018-05-15 16:15:21 +02:00
raw-format.c block: Support BDRV_REQ_WRITE_UNCHANGED in filters 2018-05-15 16:15:21 +02:00
rbd.c rbd: Switch to byte-based callbacks 2018-05-15 16:11:41 +02:00
replication.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
sheepdog.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
snapshot.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
ssh.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
stream.c blockjob: Introduce block_job_ratelimit_get_delay() 2018-05-15 16:11:50 +02:00
throttle-groups.c
throttle.c block: Support BDRV_REQ_WRITE_UNCHANGED in filters 2018-05-15 16:15:21 +02:00
trace-events
vdi.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
vhdx-endian.c
vhdx-log.c
vhdx.c block: Merge .bdrv_co_writev{,_flags} in drivers 2018-05-15 16:11:41 +02:00
vhdx.h
vmdk.c vmdk: return ERROR when cluster sector is larger than vmdk limitation 2018-03-26 21:17:24 +02:00
vpc.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
vvfat.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02:00
vxhs.c vxhs: Switch to byte-based callbacks 2018-05-15 16:11:41 +02:00
win32-aio.c file-win32: Switch to byte-based callbacks 2018-05-15 16:11:41 +02:00
write-threshold.c