Make incorrect use of timeout fail.
authorWouter Verhelst <w@uter.be>
Tue, 4 Aug 2009 07:01:21 +0000 (09:01 +0200)
committerWouter Verhelst <w@uter.be>
Tue, 4 Aug 2009 07:07:10 +0000 (09:07 +0200)
When nbd-client is compiled on a system that does not support the timeout
ioctl(), we now fail with an error message. Previously, the option would be
silently ignored, which might not be optimal.

nbd-client.c

index 80dc816..3487eff 100644 (file)
@@ -178,13 +178,15 @@ void setsizes(int nbd, u64 size64, int blocksize, u32 flags) {
 }
 
 void set_timeout(int nbd, int timeout) {
-#ifdef NBD_SET_TIMEOUT
        if (timeout) {
+#ifdef NBD_SET_TIMEOUT
                if (ioctl(nbd, NBD_SET_TIMEOUT, (unsigned long)timeout) < 0)
                        err("Ioctl NBD_SET_TIMEOUT failed: %m\n");
                fprintf(stderr, "timeout=%d\n", timeout);
-       }
+#else
+               err("Ioctl NBD_SET_TIMEOUT cannot be called when compiled on a system that does not support it\n");
 #endif
+       }
 }
 
 void finish_sock(int sock, int nbd, int swap) {