search for: backend_flush

Displaying 14 results from an estimated 14 matches for "backend_flush".

2020 Mar 16
1
nbdkit Assertion `h->can_flush == 1' failed on Arch
https://aur.archlinux.org/packages/nbdkit/#comment-733981 reports that tests-parallel-nbd.sh hangs. Looking at the log file from the test reveals: nbdkit: backend.c:523: backend_flush: Assertion `h->can_flush == 1' failed. I've attached the full log. If you want to see other logs from the run (probably not relevant) then download https://svenne.dk/nbdkit-20200315/nbdkit-logs-20200315.tar.gz I believe the assertion comes from calling flush when can_flush previously...
2020 Feb 12
0
[PATCH nbdkit 3/3] server: filters: Remove struct b_h.
...ackend_pwrite (b_h->b, buf, count, offset, flags, - err); + struct backend *b_next = nxdata; + return backend_pwrite (b_next, buf, count, offset, flags, err); } static int next_flush (void *nxdata, uint32_t flags, int *err) { - struct b_h *b_h = nxdata; - return backend_flush (b_h->b, flags, err); + struct backend *b_next = nxdata; + return backend_flush (b_next, flags, err); } static int next_trim (void *nxdata, uint32_t count, uint64_t offset, uint32_t flags, int *err) { - struct b_h *b_h = nxdata; - return backend_trim (b_h->b, count, offs...
2020 Feb 12
5
[PATCH nbdkit 1/3] server: Rename global backend pointer to "top".
...case NBD_CMD_WRITE: if (flags & NBD_CMD_FLAG_FUA) f |= NBDKIT_FLAG_FUA; - if (backend_pwrite (backend, buf, count, offset, f, &err) == -1) + if (backend_pwrite (top, buf, count, offset, f, &err) == -1) return err; break; case NBD_CMD_FLUSH: - if (backend_flush (backend, 0, &err) == -1) + if (backend_flush (top, 0, &err) == -1) return err; break; case NBD_CMD_TRIM: if (flags & NBD_CMD_FLAG_FUA) f |= NBDKIT_FLAG_FUA; - if (backend_trim (backend, count, offset, f, &err) == -1) + if (backend_trim (top, co...
2020 Feb 11
0
[PATCH nbdkit 3/3] server: Remove explicit connection parameter, use TLS instead.
...t connection *conn, + __attribute__((__nonnull__ (1, 2, 6))); +extern int backend_pwrite (struct backend *b, const void *buf, uint32_t count, uint64_t offset, uint32_t flags, int *err) - __attribute__((__nonnull__ (1, 2, 3, 7))); -extern int backend_flush (struct backend *b, struct connection *conn, + __attribute__((__nonnull__ (1, 2, 6))); +extern int backend_flush (struct backend *b, uint32_t flags, int *err) - __attribute__((__nonnull__ (1, 2, 4))); -extern int backend_trim (struct backend *b, struct connection *conn,...
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
..., uint32_t count, uint64_t offset, - uint32_t flags, int *err) -{ - struct backend *b_next = nxdata; - return backend_pwrite (b_next, buf, count, offset, flags, err); -} - -static int -next_flush (void *nxdata, uint32_t flags, int *err) -{ - struct backend *b_next = nxdata; - return backend_flush (b_next, flags, err); -} - -static int -next_trim (void *nxdata, uint32_t count, uint64_t offset, uint32_t flags, - int *err) -{ - struct backend *b_next = nxdata; - return backend_trim (b_next, count, offset, flags, err); -} - -static int -next_zero (void *nxdata, uint32_t count, uint6...
2020 Feb 12
0
[PATCH nbdkit 2/3] server: Rename ‘struct b_conn_handle’ to plain ‘struct handle’.
...496,7 +496,7 @@ backend_pwrite (struct backend *b, uint32_t flags, int *err) { GET_CONN; - struct b_conn_handle *h = &conn->handles[b->i]; + struct handle *h = get_handle (conn, b->i); bool fua = !!(flags & NBDKIT_FLAG_FUA); int r; @@ -520,7 +520,7 @@ backend_flush (struct backend *b, uint32_t flags, int *err) { GET_CONN; - struct b_conn_handle *h = &conn->handles[b->i]; + struct handle *h = get_handle (conn, b->i); int r; assert (h->handle && (h->state & HANDLE_CONNECTED)); @@ -540,7 +540,7 @@ back...
2019 Aug 30
0
[nbdkit PATCH 9/9] server: Move command validation from protocol.c to backend.c
...pwrite", flags)) { + *err = EROFS; + return -1; + } + if (invalid_range (b, conn, "pwrite", offset, count)) { + *err = ENOSPC; + return -1; + } r = b->pwrite (b, conn, buf, count, offset, flags, err); if (r == -1) assert (*err); @@ -310,11 +359,18 @@ int backend_flush (struct backend *b, struct connection *conn, uint32_t flags, int *err) { + struct b_conn_handle *h = &conn->handles[b->i]; int r; assert (flags == 0); debug ("%s: flush", b->name); + assert (h->can_flush >= 0); + if (h->can_flush == 0)...
2020 Feb 11
1
[nbdkit PATCH] filters: Make nxdata persistent
...handle; + assert (nxdata->b == b->next && nxdata->conn == conn); if (f->filter.flush) - return f->filter.flush (&next_ops, &nxdata, handle, flags, err); + return f->filter.flush (&next_ops, nxdata, nxdata->handle, flags, err); else return backend_flush (b->next, conn, flags, err); } @@ -623,11 +659,12 @@ filter_trim (struct backend *b, struct connection *conn, void *handle, uint32_t flags, int *err) { struct backend_filter *f = container_of (b, struct backend_filter, backend); - struct b_conn nxdata = { .b = b->next, .co...
2019 Aug 30
15
[nbdkit PATCH 0/9] can_FOO caching, more filter validation
It's easy to use the sh script to demonstrate that nbdkit is inefficiently calling into .get_size, .can_fua, and friends more than necessary. We've also commented on the list in the past that it would be nice to ensure that when filters call into next_ops, they are not violating constraints (as we've have to fix several bugs in the past where we did not have such checking to protect
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