diff --git a/nbd.c b/nbd.c index d32a19e5e3291ccf1339c7ca14476a8d9720b2e1..595f4d8df3779f03521d0d164317397452ffe27b 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) {