Patchwork [03/12] nbd: support NBD_SET_FLAGS ioctl

login
register
mail settings
Submitter Paolo Bonzini
Date Sept. 8, 2011, 3:24 p.m.
Message ID <1315495505-28906-4-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/113912/
State New
Headers show

Comments

Paolo Bonzini - Sept. 8, 2011, 3:24 p.m.
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 <pbonzini@redhat.com>
---
 nbd.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

Patch

diff --git a/nbd.c b/nbd.c
index 9ed2239..30cd78f 100644
--- a/nbd.c
+++ b/nbd.c
@@ -377,6 +377,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) {