Displaying 11 results from an estimated 11 matches for "backend_can_fast_zero".
2020 Feb 12
0
[PATCH nbdkit 3/3] server: filters: Remove struct b_h.
...rim (b_next);
}
static int
next_can_zero (void *nxdata)
{
- struct b_h *b_h = nxdata;
- return backend_can_zero (b_h->b);
+ struct backend *b_next = nxdata;
+ return backend_can_zero (b_next);
}
static int
next_can_fast_zero (void *nxdata)
{
- struct b_h *b_h = nxdata;
- return backend_can_fast_zero (b_h->b);
+ struct backend *b_next = nxdata;
+ return backend_can_fast_zero (b_next);
}
static int
next_can_extents (void *nxdata)
{
- struct b_h *b_h = nxdata;
- return backend_can_extents (b_h->b);
+ struct backend *b_next = nxdata;
+ return backend_can_extents (b_next);
}
s...
2020 Feb 12
5
[PATCH nbdkit 1/3] server: Rename global backend pointer to "top".
...an_write (backend);
+ fl = backend_can_write (top);
if (fl == -1)
return -1;
if (!fl)
eflags |= NBD_FLAG_READ_ONLY;
- fl = backend_can_zero (backend);
+ fl = backend_can_zero (top);
if (fl == -1)
return -1;
if (fl)
eflags |= NBD_FLAG_SEND_WRITE_ZEROES;
- fl = backend_can_fast_zero (backend);
+ fl = backend_can_fast_zero (top);
if (fl == -1)
return -1;
if (fl)
eflags |= NBD_FLAG_SEND_FAST_ZERO;
- fl = backend_can_trim (backend);
+ fl = backend_can_trim (top);
if (fl == -1)
return -1;
if (fl)
eflags |= NBD_FLAG_SEND_TRIM;
- fl = backend_...
2020 Feb 11
0
[PATCH nbdkit 3/3] server: Remove explicit connection parameter, use TLS instead.
...t connection *conn)
- __attribute__((__nonnull__ (1, 2)));
-extern int backend_can_trim (struct backend *b, struct connection *conn)
- __attribute__((__nonnull__ (1, 2)));
-extern int backend_can_zero (struct backend *b, struct connection *conn)
- __attribute__((__nonnull__ (1, 2)));
-extern int backend_can_fast_zero (struct backend *b, struct connection *conn)
- __attribute__((__nonnull__ (1, 2)));
-extern int backend_can_extents (struct backend *b, struct connection *conn)
- __attribute__((__nonnull__ (1, 2)));
-extern int backend_can_fua (struct backend *b, struct connection *conn)
- __attribute__((__nonn...
2020 Feb 11
4
[PATCH nbdkit v2 0/3] server: Remove explicit connection parameter.
v1 was here:
https://www.redhat.com/archives/libguestfs/2020-February/msg00081.html
v2 replaces
struct connection *conn = GET_CONN;
with
GET_CONN;
which sets conn implicitly and asserts that it is non-NULL.
If we actually want to test if conn is non-NULL or behave
differently, then you must use threadlocal_get_conn() instead,
and some existing uses do that.
Rich.
2020 Feb 11
5
[PATCH nbdkit 0/3] server: Remove explicit connection parameter.
The third patch is a large but mechanical change which gets rid of
passing around struct connection * entirely within the server,
preferring instead to reference the connection through thread-local
storage.
I hope this is a gateway to simplifying other parts of the code.
Rich.
2020 Feb 12
2
[nbdkit PATCH] filters: Remove most next_* wrappers
...-{
- struct backend *b_next = nxdata;
- return backend_can_trim (b_next);
-}
-
-static int
-next_can_zero (void *nxdata)
-{
- struct backend *b_next = nxdata;
- return backend_can_zero (b_next);
-}
-
-static int
-next_can_fast_zero (void *nxdata)
-{
- struct backend *b_next = nxdata;
- return backend_can_fast_zero (b_next);
-}
-
-static int
-next_can_extents (void *nxdata)
-{
- struct backend *b_next = nxdata;
- return backend_can_extents (b_next);
-}
-
-static int
-next_can_fua (void *nxdata)
-{
- struct backend *b_next = nxdata;
- return backend_can_fua (b_next);
-}
-
-static int
-next_can_multi_conn (...
2020 Feb 12
0
[PATCH nbdkit 2/3] server: Rename ‘struct b_conn_handle’ to plain ‘struct handle’.
...b->name);
@@ -368,7 +368,7 @@ int
backend_can_zero (struct backend *b)
{
GET_CONN;
- struct b_conn_handle *h = &conn->handles[b->i];
+ struct handle *h = get_handle (conn, b->i);
int r;
controlpath_debug ("%s: can_zero", b->name);
@@ -389,7 +389,7 @@ int
backend_can_fast_zero (struct backend *b)
{
GET_CONN;
- struct b_conn_handle *h = &conn->handles[b->i];
+ struct handle *h = get_handle (conn, b->i);
int r;
controlpath_debug ("%s: can_fast_zero", b->name);
@@ -410,7 +410,7 @@ int
backend_can_extents (struct backend *b)
{
GET...
2020 Feb 11
1
[nbdkit PATCH] filters: Make nxdata persistent
...handle;
+ assert (nxdata->b == b->next && nxdata->conn == conn);
if (f->filter.can_fast_zero)
- return f->filter.can_fast_zero (&next_ops, &nxdata, handle);
+ return f->filter.can_fast_zero (&next_ops, nxdata, nxdata->handle);
else
return backend_can_fast_zero (b->next, conn);
}
@@ -530,10 +559,11 @@ static int
filter_can_extents (struct backend *b, struct connection *conn, void *handle)
{
struct backend_filter *f = container_of (b, struct backend_filter, backend);
- struct b_conn nxdata = { .b = b->next, .conn = conn };
+ struct b_conn *nx...
2019 Oct 07
6
[nbdkit PATCH 0/5] More retry fixes
I think this is my last round of patches for issues I identified with
the retry filter. With this in place, it should be safe to interject
another filter in between retry and the plugin.
Eric Blake (5):
retry: Don't call into closed plugin
tests: Refactor test-retry-reopen-fail.sh
tests: Enhance retry test to cover failed reopen
server: Move prepare/finalize/close recursion to
2019 Dec 12
9
[PATCH nbdkit 0/7] server: Allow datapath debug messages to be suppressed.
The immediate reason for this patch is to reduce the amount of
debugging in virt-v2v with using the virt-v2v -v option (because this
implies running nbdkit in verbose mode too). Most of the messages are
datapath ones about pread/pwrite requests, and in fact as we've added
more filters on top of nbdkit these messages have got more and more
verbose. However they are not particularly
2019 Oct 04
6
[nbdkit PATCH 0/5] Another round of retry fixes
I still don't have .prepare/.finalize working cleanly across reopen,
but did find a nasty bug where a botched assertion means we failed to
notice reads beyond EOF in both the xz and retry filter.
Refactoring backend.c will make .finalize work easier.
Eric Blake (5):
xz: Avoid reading beyond EOF
retry: Check size before transactions
tests: Test retry when get_size values change