From 1cc12d0815c1f174cadeefc29351aa1b246f8308 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 8 Sep 2011 17:24:56 +0200 Subject: [PATCH] nbd: support NBD_SET_FLAGS ioctl 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 Signed-off-by: Kevin Wolf --- nbd.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nbd.c b/nbd.c index d32a19e..595f4d8 100644 --- 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) { -- 2.7.4