Displaying 7 results from an estimated 7 matches for "nbd_unlocked_aio_notify_write".
2019 May 30
3
[PATCH libnbd 0/2] Avoid lock and error overhead on some calls.
This works. I'm in the middle of testing whether there is any
noticable benefit.
Rich.
2019 Jun 27
0
[libnbd PATCH 2/2] poll: Improve our interface
...ead, since the reply is
+ * for a command older than what we are trying to write.
*/
r = 0;
- if ((fds[0].revents & POLLIN) != 0)
+ if ((fds[0].revents & (POLLIN | POLLHUP)) != 0)
r = nbd_unlocked_aio_notify_read (h);
else if ((fds[0].revents & POLLOUT) != 0)
r = nbd_unlocked_aio_notify_write (h);
+ else if ((fds[0].revents & (POLLERR | POLLNVAL)) != 0) {
+ set_error (ENOTCONN, "server closed socket unexpectedly");
+ return -1;
+ }
if (r == -1)
return -1;
- return 0;
+ return 1;
}
--
2.20.1
2019 Jun 05
0
[PATCH libnbd 1/4] lib: Move nbd_aio_is_* function impls to separate source file.
...--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -42,6 +42,7 @@ libnbd_la_SOURCES = \
flags.c \
handle.c \
internal.h \
+ is-state.c \
nbd-protocol.h \
poll.c \
protocol.c \
diff --git a/lib/aio.c b/lib/aio.c
index a129af2..38e0318 100644
--- a/lib/aio.c
+++ b/lib/aio.c
@@ -48,84 +48,6 @@ nbd_unlocked_aio_notify_write (struct nbd_handle *h)
return nbd_internal_run (h, notify_write);
}
-/* NB: is_locked = false, may_set_error = false. */
-int
-nbd_unlocked_aio_is_created (struct nbd_handle *h)
-{
- return h->state == STATE_START;
-}
-
-static int
-is_connecting_group (enum state_group group)
-{
- switc...
2019 Jun 27
3
[libnbd PATCH 0/2] socket handling cleanups
While working on a new test of what happens when the server goes away
while commands are in flight, I managed to hit a race where I hit
death from SIGPIPE instead of a clean transition to the DEAD state. I
also found myself wanting to use nbd_poll from the test, but with a
way to distinguish between the state machine progressing vs. hanging.
Eric Blake (2):
socket: Avoid SIGPIPE where possible
2019 May 22
8
[PATCH libnbd v2 0/6] Test connection states.
Patch 1/6 was posted before and I didn't change it:
https://www.redhat.com/archives/libguestfs/2019-May/thread.html#00134
That doesn't necessarily mean I shouldn't change it, I'm posting
it again because the other patches depend on it.
The main change in this series is we add three new API functions:
nbd_aio_is_created - connection has just been created
2019 May 23
2
[PATCH libnbd] api: Get rid of nbd_connection.
This isn't quite finished because not all of the tests or examples
have been updated, but it demonstrates an idea: Should we forget about
the concept of having multiple connections managed under a single
handle?
In this patch there is a single ‘struct nbd_handle *’ which manages a
single state machine and connection (and therefore no nbd_connection).
To connect to a multi-conn server you must
2019 Jun 05
9
[PATCH libnbd 0/4] lib: Atomically update h->state.
I need to think about this patch series a bit more, but it
does at least pass the tests.
Rich.