Displaying 20 results from an estimated 3000 matches similar to: "[nbdkit PATCH] noextents: Add hook to cripple SR advertisement"
2020 Feb 10
2
[nbdkit PATCH 03/10] filters: Wire up filter support for NBD_INFO_INIT_STATE
The NBD protocol is adding an extension to let servers advertise
initialization state to the client: whether the image contains holes,
and whether it is known to read as all zeroes. Most filters just pass
through the plugin's result (as it is only checked once when first
connecting), but we can do useful things in log (mention the setting),
extentlist (answer based on the extents we are
2019 Mar 12
0
[PATCH nbdkit] server: Implement extents/can_extents calls for plugins and filters.
This pair of calls allows plugins to describe which extents in the
virtual disk are allocated, holes or zeroes.
---
docs/nbdkit-filter.pod | 22 +++++++++++
docs/nbdkit-plugin.pod | 86 +++++++++++++++++++++++++++++++++++++++++
include/nbdkit-common.h | 14 ++++++-
include/nbdkit-filter.h | 12 +++++-
include/nbdkit-plugin.h | 6 ++-
server/internal.h | 7 +++-
server/filters.c |
2019 Mar 12
0
[PATCH nbdkit] server: Implement extents/can_extents calls for plugins and filters.
This pair of calls allows plugins to describe which extents in the
virtual disk are allocated, holes or zeroes.
---
docs/nbdkit-filter.pod | 45 +++++++++++++++++
docs/nbdkit-plugin.pod | 106 ++++++++++++++++++++++++++++++++++++++++
include/nbdkit-common.h | 18 ++++++-
include/nbdkit-filter.h | 12 ++++-
include/nbdkit-plugin.h | 6 ++-
server/internal.h | 7 ++-
server/extents.c
2019 Mar 13
0
[PATCH nbdkit] server: Implement extents/can_extents calls for plugins and filters.
This pair of calls allows plugins to describe which extents in the
virtual disk are allocated, holes or zeroes.
---
docs/nbdkit-filter.pod | 64 +++++++++++++++++++++
docs/nbdkit-plugin.pod | 123 ++++++++++++++++++++++++++++++++++++++++
include/nbdkit-common.h | 20 ++++++-
include/nbdkit-filter.h | 15 ++++-
include/nbdkit-plugin.h | 6 +-
server/internal.h | 7 ++-
2019 Mar 26
0
[PATCH nbdkit v4 01/15] server: Implement extents/can_extents calls for plugins and filters.
This pair of calls allows plugins to describe which extents in the
virtual disk are allocated, holes or zeroes.
---
docs/nbdkit-filter.pod | 89 +++++++++++++++++++
docs/nbdkit-plugin.pod | 96 +++++++++++++++++++++
include/nbdkit-common.h | 10 ++-
include/nbdkit-filter.h | 22 ++++-
include/nbdkit-plugin.h | 6 +-
server/internal.h | 4 +
server/extents.c | 186
2019 Mar 20
0
[PATCH nbdkit 1/8] server: Implement extents/can_extents calls for plugins and filters.
This pair of calls allows plugins to describe which extents in the
virtual disk are allocated, holes or zeroes.
---
docs/nbdkit-filter.pod | 92 +++++++++++++++++++++
docs/nbdkit-plugin.pod | 99 +++++++++++++++++++++++
include/nbdkit-common.h | 10 ++-
include/nbdkit-filter.h | 22 +++++-
include/nbdkit-plugin.h | 6 +-
server/internal.h | 4 +
server/extents.c | 171
2019 Mar 28
0
[PATCH nbdkit v5 FINAL 01/19] server: Implement extents/can_extents calls for plugins and filters.
This new pair of callbacks allows plugins to describe which extents in
the virtual disk are allocated, holes or zeroes.
---
docs/nbdkit-filter.pod | 83 ++++++++++++++++
docs/nbdkit-plugin.pod | 97 +++++++++++++++++++
include/nbdkit-common.h | 10 +-
include/nbdkit-filter.h | 22 ++++-
include/nbdkit-plugin.h | 6 +-
server/internal.h | 4 +
server/extents.c | 210
2019 Mar 19
0
[PATCH nbdkit 1/9] server: Implement extents/can_extents calls for plugins and filters.
This pair of calls allows plugins to describe which extents in the
virtual disk are allocated, holes or zeroes.
---
docs/nbdkit-filter.pod | 107 ++++++++
docs/nbdkit-plugin.pod | 103 +++++++
include/nbdkit-common.h | 10 +-
include/nbdkit-filter.h | 25 +-
include/nbdkit-plugin.h | 6 +-
server/internal.h | 5 +
server/extents.c | 574
2019 May 16
0
[nbdkit PATCH v2 24/24] nocache: Implement new filter
Similar to the existing fua, nozero and noextents filters, add a
filter to make it easy to override the basic caching functionality, in
part to facilitate timing tests of whether a plugin's cache
implementation is worthwhile.
A worthwhile test to add to the testsuite would connect the log filter
both before and after the nocache filter, to prove how caching
requests are altered. However,
2020 Feb 11
1
[nbdkit PATCH] filters: Make nxdata persistent
Future patches want to allow a filter to pass a single opaque
parameter into another framework (such as ext2fs_open) or even spawn a
helper thread, which requires that nxdata be stable for the entire
life of the connection between .open and .close. Our current approach
of creating a stack-allocated nxdata for every call does not play
nicely with that scheme, so rework things into using a
2019 Aug 30
0
[nbdkit PATCH 1/9] server: Fewer dereferences in filter
Anywhere that we compute 'f = container_of(b)' then use 'f->backend.',
we can instead just use 'b->'. Similarly, during registration, we can
use the 'filename' input rather than our just-copied 'f->filename'.
Signed-off-by: Eric Blake <eblake@redhat.com>
---
server/filters.c | 170 ++++++++++++++++++++++-------------------------
1 file
2020 Feb 11
0
[PATCH nbdkit 3/3] server: Remove explicit connection parameter, use TLS instead.
Since commit 86fdb48c6a5362d66865493d9d2172166f99722e we have stored
the connection object in thread-local storage.
In this very large, but mostly mechanical change we stop passing the
connection pointer around everywhere, and instead use the value stored
in thread-local storage.
This assumes a 1-1 mapping between the connection and the current
thread which is true in *most* places.
2018 Jan 24
0
[nbdkit PATCH 2/3] filter: Add .can_zero/.can_fua overrides
While our plugin code always advertises WRITE_ZEROES on writable
connections (because we can emulate .zero by calling .pwrite),
and FUA support when .flush exists (because we can emulate the
persistence by calling .flush), it is conceivable that a filter
may want to explicitly avoid advertising particular bits. (More
to the point, I plan on writing a 'nozero' filter that hides
2019 Jan 04
0
[PATCH nbdkit 1/7] server: Implement NBD_FLAG_CAN_MULTI_CONN.
>From the protocol document:
"NBD_FLAG_CAN_MULTI_CONN: Indicates that the server operates
entirely without cache, or that the cache it uses is shared among
all connections to the given device. In particular, if this flag is
present, then the effects of NBD_CMD_FLUSH and NBD_CMD_FLAG_FUA MUST
be visible across all connections when the server sends its reply to
that command to
2019 Aug 30
0
[nbdkit PATCH 2/9] server: Consolidate common backend tasks into new backend.c
Both plugin.c and filter.c add the same three fields on top of struct
backend, and use very similar code in initializing them. Let's stop
the duplication, by moving those three fields into struct backend, and
creating a new backend.c for manipulating them. In turn, we can drop
the backend->name() accessor in favor of just directly accessing the
name field. This is a net reduction in
2019 Aug 30
1
[nbdkit PATCH v2] filters: Stronger version match requirements
We documented our intent of only allowing a filter to run with the
same version of nbdkit it was compiled against, but up to now, were
not actually enforcing that - we had only been insisting on the looser
notion of a matching ._api_version, which doesn't help when we've
forgotten to bump that macro when making incompatible API/ABI changes
(see commit 6934d4c1). However, we can't use
2020 Feb 12
2
[nbdkit PATCH] filters: Remove most next_* wrappers
With our recent cleanups to nxdata, the only remaining difference
between functions like backend_open() and next_open() was the
signature (one used void*, the other struct backend *); the API is
compatible. All of our filters are in-tree, and we don't promise
API/ABI stability, but it is still a lot of files to touch, so the
simplest solution to avoid the redundant hop through wrapper
2019 Aug 20
2
[nbdkit PATCH v2] main: Add option to disable SR advertisement
When we added support for .extents, we had nbdkit unconditionally
support structured replies if the client requests them, and the
plugin's .can_extents has no impact on what the server advertises.
However, while the plugin API doesn't care whether the client
requested SR, there are still integration situations where not
advertising SR can be useful (such as comparison on what a client does
2018 Jan 19
2
[nbdkit PATCH] Update filters to support FUA flags.
From: "Richard W.M. Jones" <rjones@redhat.com>
This patch may be worth squashing?
---
docs/nbdkit-filter.pod | 65 +++++++++++++++++++++++++++++++++++++++++++------
include/nbdkit-filter.h | 29 ++++++++++++----------
src/filters.c | 55 ++++++++++++++++++++---------------------
3 files changed, 101 insertions(+), 48 deletions(-)
diff --git a/docs/nbdkit-filter.pod
2019 Aug 30
0
[nbdkit PATCH 6/9] server: Cache per-connection can_FOO flags
Similar to the previous patch in caching size, we want to avoid
calling into the plugin more than once per connection on any of the
flag determination callbacks.
The following script demonstrates the speedup, where we avoid repeated
calls into a slow can_fua. Pre-patch:
$ cat script
case "$1" in
get_size) echo 1m;;
can_fua) sleep 1; echo native;;
can_write | can_zero |