Tested via: term1$ qemu-nbd -k $PWD/sock -t -f raw -x foo junk --trace=nbd_\* term2$ ./nbdkit -f -v -e bar nbd socket=$PWD/sock export=foo term3$ qemu-io -t none -f raw nbd://localhost:10809/bar --trace=nbd_\*
and checking the traces to see that 'w 0 1' vs. 'w -f 0 1' was able to influence whether the FUA flag showed up at the server in term1. Still to go: figure out how to expose the flags through the language bindings Patch 7 is RFC; Rich and I debated on IRC whether we want it (the code in plugin_register() sounds like it tries hard to support newer plugins with older nbdkit), or whether we should just drop the patch and state that a user either manually supplies back-compat variants (tedious boilerplate for the user to supply, especially since newer nbdkit will never call the older functions) or just document that newer plugins combined with old nbdkit is not guaranteed to work. Eric Blake (7): connections: Ignore FUA flag on read/flush protocol: Split flags from cmd field in requests plugins: Move FUA fallback to plugins plugins: Add callbacks for FUA semantics plugins: Implement FUA support nbd: Wire up FUA flag passthrough RFC: plugins: Add back-compat for new plugin with old nbdkit docs/nbdkit-plugin.pod | 77 +++++++++++++++++++++++++++++++++++++-- docs/nbdkit.pod | 8 +++-- include/nbdkit-plugin.h | 34 +++++++++++++++++- plugins/nbd/nbd.c | 64 ++++++++++++++++++++------------- src/connections.c | 46 +++++++++++++----------- src/internal.h | 9 ++--- src/plugins.c | 96 +++++++++++++++++++++++++++++++++++++++---------- src/protocol.h | 10 +++--- 8 files changed, 266 insertions(+), 78 deletions(-) -- 2.14.3 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
