A combination of the work that both Rich and I have been doing
lately, where filters use only the new API with flags on every
command that the client can send over the wire (we can then
add support for more flags in nbdkit without having to add new
callbacks, as NBD adds more flags upstream).
Eric Blake (4):
protocol: Split flags from cmd field in requests
backend: Pass flags argument through
plugins: Move FUA fallback to plugins
RFC: plugins: Add callbacks for FUA semantics
Richard W.M. Jones (9):
plugins: Move locking to a new file.
Refactor plugin_* functions into a backend struct.
Fix const-correctness of backend pwrite method.
backend: Add a .plugin_name method.
connections: Allow multiple handles to be stored in the connection
object.
Introduce filters.
Implement filters.
filters: Add nbdkit-offset-filter.
filters: Move rdelay/wdelay from file plugin to new delay filter.
Makefile.am | 2 +-
TODO | 22 +-
configure.ac | 5 +-
docs/Makefile.am | 9 +-
docs/nbdkit-filter.pod | 528 +++++++++++++++++++++++++
docs/nbdkit-plugin.pod | 92 ++++-
docs/nbdkit.pod | 31 +-
filters/Makefile.am | 35 ++
filters/delay/Makefile.am | 62 +++
filters/delay/delay.c | 162 ++++++++
filters/delay/nbdkit-delay-filter.pod | 88 +++++
filters/offset/Makefile.am | 62 +++
filters/offset/nbdkit-offset-filter.pod | 99 +++++
filters/offset/offset.c | 148 +++++++
include/Makefile.am | 4 +-
include/nbdkit-filter.h | 147 +++++++
include/nbdkit-plugin.h | 33 +-
nbdkit.in | 17 +-
plugins/file/file.c | 76 +---
plugins/file/nbdkit-file-plugin.pod | 14 +-
plugins/nbd/nbd.c | 39 +-
src/Makefile.am | 7 +-
src/connections.c | 124 +++---
src/filters.c | 613 ++++++++++++++++++++++++++++
src/internal.h | 92 +++--
src/locks.c | 115 ++++++
src/main.c | 134 ++++++-
src/nbdkit.pc.in | 1 +
src/plugins.c | 680 +++++++++++++++++---------------
src/protocol.h | 10 +-
tests/test-parallel-file.sh | 4 +-
tests/test-parallel-nbd.sh | 1 +
32 files changed, 2896 insertions(+), 560 deletions(-)
create mode 100644 docs/nbdkit-filter.pod
create mode 100644 filters/Makefile.am
create mode 100644 filters/delay/Makefile.am
create mode 100644 filters/delay/delay.c
create mode 100644 filters/delay/nbdkit-delay-filter.pod
create mode 100644 filters/offset/Makefile.am
create mode 100644 filters/offset/nbdkit-offset-filter.pod
create mode 100644 filters/offset/offset.c
create mode 100644 include/nbdkit-filter.h
create mode 100644 src/filters.c
create mode 100644 src/locks.c
--
2.14.3