See the cross-post cover letter for details:
https://www.redhat.com/archives/libguestfs/2019-August/msg00322.html
Notably, this series did NOT add fast zero support to the file plugin
yet; there, I probably need to do more testing and/or kernel source
code reading to learn whether to mark fallocate() as potentially slow,
as well as to definitely mark ioctl(BLKZEROOUT) as definitely slow.
That will be a followup patch.
Eric Blake (3):
server: Add internal support for NBDKIT_FLAG_FAST_ZERO
filters: Add .can_fast_zero hook
plugins: Add .can_fast_zero hook
docs/nbdkit-filter.pod | 27 ++++--
docs/nbdkit-plugin.pod | 74 +++++++++++---
docs/nbdkit-protocol.pod | 11 +++
filters/delay/nbdkit-delay-filter.pod | 15 ++-
filters/log/nbdkit-log-filter.pod | 2 +-
filters/nozero/nbdkit-nozero-filter.pod | 41 ++++++--
plugins/sh/nbdkit-sh-plugin.pod | 13 ++-
server/internal.h | 2 +
common/protocol/protocol.h | 11 ++-
server/filters.c | 33 ++++++-
server/plugins.c | 47 ++++++++-
server/protocol-handshake.c | 7 ++
server/protocol.c | 46 +++++++--
include/nbdkit-common.h | 7 +-
include/nbdkit-filter.h | 3 +
include/nbdkit-plugin.h | 2 +
filters/blocksize/blocksize.c | 12 +++
filters/cache/cache.c | 20 ++++
filters/cow/cow.c | 20 ++++
filters/delay/delay.c | 28 +++++-
filters/log/log.c | 16 ++--
filters/nozero/nozero.c | 62 +++++++++++-
filters/truncate/truncate.c | 15 +++
plugins/data/data.c | 14 ++-
plugins/full/full.c | 12 +--
plugins/memory/memory.c | 14 ++-
plugins/nbd/nbd.c | 28 +++++-
plugins/null/null.c | 8 ++
plugins/ocaml/ocaml.c | 26 ++++-
plugins/sh/call.c | 1 -
plugins/sh/sh.c | 39 ++++++--
plugins/ocaml/NBDKit.ml | 10 +-
plugins/ocaml/NBDKit.mli | 2 +
plugins/rust/src/lib.rs | 3 +
tests/test-eflags.sh | 122 +++++++++++++++++++++---
tests/test-fua.sh | 4 +-
36 files changed, 686 insertions(+), 111 deletions(-)
--
2.21.0