diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2011-09-08 17:24:56 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2011-09-19 11:34:33 +0200 |
commit | 973b3d0a7b2823f510e948283284f103ede43c49 (patch) | |
tree | 4fc8a059aeb18ff2ecaf7ee4ec66c9c735555d16 /nbd.c | |
parent | bbb74edd405bee8cf29957ef781294f40f02d4c6 (diff) | |
download | qemu-973b3d0a7b2823f510e948283284f103ede43c49.tar.gz qemu-973b3d0a7b2823f510e948283284f103ede43c49.tar.bz2 qemu-973b3d0a7b2823f510e948283284f103ede43c49.zip |
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 <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'nbd.c')
-rw-r--r-- | nbd.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -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) { |