I'm still working my way through the filters before this series will
be complete, but this is enough of a start to at least get some
feedback on the idea of implementing another NBD protocol extension.
Eric Blake (9):
server: Internal hooks for implementing NBD_CMD_CACHE
plugins: Add .cache callback
file, split: Implement .cache with posix_fadvise
nbd: Implement NBD_CMD_CACHE passthrough
plugins: Implement no-op .cache for in-memory plugins
sh: Implement .cache script callback
filters: Add .cache callback
test-layers: Test .cache usage
blocksize: Implement .cache rounding
docs/nbdkit-filter.pod | 27 ++++++++++++++-
docs/nbdkit-plugin.pod | 52 ++++++++++++++++++++++++++++
docs/nbdkit-protocol.pod | 10 ++++++
plugins/sh/nbdkit-sh-plugin.pod | 12 ++++++-
configure.ac | 3 +-
common/protocol/protocol.h | 2 ++
include/nbdkit-filter.h | 8 +++++
include/nbdkit-plugin.h | 2 ++
server/internal.h | 4 +++
filters/blocksize/blocksize.c | 31 ++++++++++++++++-
plugins/data/data.c | 10 ++++++
plugins/file/file.c | 22 ++++++++++++
plugins/full/full.c | 12 ++++++-
plugins/memory/memory.c | 10 ++++++
plugins/nbd/nbd.c | 22 ++++++++++++
plugins/null/null.c | 12 ++++++-
plugins/pattern/pattern.c | 12 ++++++-
plugins/random/random.c | 12 ++++++-
plugins/sh/sh.c | 40 ++++++++++++++++++++++
plugins/split/split.c | 37 +++++++++++++++++++-
plugins/streaming/streaming.c | 11 ++++++
plugins/zero/zero.c | 12 ++++++-
server/filters.c | 60 ++++++++++++++++++++++++++++++++-
server/plugins.c | 39 +++++++++++++++++++++
server/protocol-handshake.c | 10 +++++-
server/protocol.c | 25 ++++++++++++++
tests/test-layers-filter.c | 22 +++++++++++-
tests/test-layers-plugin.c | 17 ++++++++++
tests/test-layers.c | 36 ++++++++++++++++++++
tests/test-eflags.sh | 53 +++++++++++++++--------------
30 files changed, 587 insertions(+), 38 deletions(-)
--
2.20.1