[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v4 06/11] nbd: Group all Linux-specific ioctl code i
From: |
Eric Blake |
Subject: |
[Qemu-block] [PATCH v4 06/11] nbd: Group all Linux-specific ioctl code in one place |
Date: |
Wed, 11 May 2016 16:39:39 -0600 |
NBD ioctl()s are used to manage an NBD client session where
initial handshake is done in userspace, but then the transmission
phase is handed off to the kernel through a /dev/nbdX device.
As such, all ioctls sent to the kernel on the /dev/nbdX fd belong
in client.c; nbd_disconnect() was out-of-place in server.c.
Signed-off-by: Eric Blake <address@hidden>
---
nbd/client.c | 13 +++++++++++++
nbd/server.c | 18 ------------------
2 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/nbd/client.c b/nbd/client.c
index 42e4e52..ae9fdd4 100644
--- a/nbd/client.c
+++ b/nbd/client.c
@@ -667,6 +667,15 @@ int nbd_client(int fd)
errno = serrno;
return ret;
}
+
+int nbd_disconnect(int fd)
+{
+ ioctl(fd, NBD_CLEAR_QUE);
+ ioctl(fd, NBD_DISCONNECT);
+ ioctl(fd, NBD_CLEAR_SOCK);
+ return 0;
+}
+
#else
int nbd_init(int fd, QIOChannelSocket *ioc, uint32_t flags, off_t size)
{
@@ -677,6 +686,10 @@ int nbd_client(int fd)
{
return -ENOTSUP;
}
+int nbd_disconnect(int fd)
+{
+ return -ENOTSUP;
+}
#endif
ssize_t nbd_send_request(QIOChannel *ioc, struct nbd_request *request)
diff --git a/nbd/server.c b/nbd/server.c
index 2ef2dfa..77b0385 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -624,24 +624,6 @@ fail:
return rc;
}
-#ifdef __linux__
-
-int nbd_disconnect(int fd)
-{
- ioctl(fd, NBD_CLEAR_QUE);
- ioctl(fd, NBD_DISCONNECT);
- ioctl(fd, NBD_CLEAR_SOCK);
- return 0;
-}
-
-#else
-
-int nbd_disconnect(int fd)
-{
- return -ENOTSUP;
-}
-#endif
-
static ssize_t nbd_receive_request(QIOChannel *ioc, struct nbd_request
*request)
{
uint8_t buf[NBD_REQUEST_SIZE];
--
2.5.5
- [Qemu-block] [PATCH v4 03/11] nbd: Quit server after any write error, (continued)
- [Qemu-block] [PATCH v4 03/11] nbd: Quit server after any write error, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 02/11] nbd: More debug typo fixes, use correct formats, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 05/11] nbd: Reject unknown request flags, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 11/11] nbd: Avoid magic number for NBD max name size, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 01/11] nbd: Use BDRV_REQ_FUA for better FUA where supported, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 09/11] nbd: Add qemu-nbd -D for human-readable description, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 10/11] nbd: Detect servers that send unexpected error values, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 06/11] nbd: Group all Linux-specific ioctl code in one place,
Eric Blake <=
- [Qemu-block] [PATCH v4 08/11] nbd: Limit nbdflags to 16 bits, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 04/11] nbd: Improve server handling of bogus commands, Eric Blake, 2016/05/11
- [Qemu-block] [PATCH v4 07/11] nbd: Clean up ioctl handling of qemu-nbd -c, Eric Blake, 2016/05/11
- Re: [Qemu-block] [Qemu-devel] [PATCH v4 00/11] nbd: tighter protocol compliance, Alex Bligh, 2016/05/12