]> Git Repo - qemu.git/commitdiff
nbd: support NBD_SET_FLAGS ioctl
authorPaolo Bonzini <[email protected]>
Thu, 8 Sep 2011 15:24:56 +0000 (17:24 +0200)
committerKevin Wolf <[email protected]>
Mon, 19 Sep 2011 09:34:33 +0000 (11:34 +0200)
The nbd kernel module cannot enable DISCARD requests unless it is
informed about it.  The flags field in the header is used for this,
and this patch adds support for it.

Signed-off-by: Paolo Bonzini <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
nbd.c

diff --git a/nbd.c b/nbd.c
index d32a19e5e3291ccf1339c7ca14476a8d9720b2e1..595f4d8df3779f03521d0d164317397452ffe27b 100644 (file)
--- a/nbd.c
+++ b/nbd.c
@@ -378,6 +378,14 @@ int nbd_init(int fd, int csock, uint32_t flags, off_t size, size_t blocksize)
         }
     }
 
+    if (ioctl(fd, NBD_SET_FLAGS, flags) < 0
+        && errno != ENOTTY) {
+        int serrno = errno;
+        LOG("Failed setting flags");
+        errno = serrno;
+        return -1;
+    }
+
     TRACE("Clearing NBD socket");
 
     if (ioctl(fd, NBD_CLEAR_SOCK) == -1) {
This page took 0.034347 seconds and 4 git commands to generate.