qemu-nbd: always compile in --aio=MODE option
The --aio=MODE option enables Linux AIO or Windows overlapped I/O. The #ifdef CONFIG_LINUX_AIO was a layering violation that also prevented Windows overlapped I/O from being used. Now that raw-posix.c prints an error when Linux AIO has not been compiled in, we can unconditionally compile the option into qemu-nbd. After this patch qemu-nbd --aio=native works on Windows. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									04d71322c1
								
							
						
					
					
						commit
						bb628e1af8
					
				| @ -98,9 +98,7 @@ static void usage(const char *name) | ||||
| "                            '[ID_OR_NAME]'\n" | ||||
| "  -n, --nocache             disable host cache\n" | ||||
| "      --cache=MODE          set cache mode (none, writeback, ...)\n" | ||||
| #ifdef CONFIG_LINUX_AIO | ||||
| "      --aio=MODE            set AIO mode (native or threads)\n" | ||||
| #endif | ||||
| "      --discard=MODE        set discard mode (ignore, unmap)\n" | ||||
| "      --detect-zeroes=MODE  set detect-zeroes mode (off, on, unmap)\n" | ||||
| "\n" | ||||
| @ -412,9 +410,7 @@ int main(int argc, char **argv) | ||||
|         { "load-snapshot", 1, NULL, 'l' }, | ||||
|         { "nocache", 0, NULL, 'n' }, | ||||
|         { "cache", 1, NULL, QEMU_NBD_OPT_CACHE }, | ||||
| #ifdef CONFIG_LINUX_AIO | ||||
|         { "aio", 1, NULL, QEMU_NBD_OPT_AIO }, | ||||
| #endif | ||||
|         { "discard", 1, NULL, QEMU_NBD_OPT_DISCARD }, | ||||
|         { "detect-zeroes", 1, NULL, QEMU_NBD_OPT_DETECT_ZEROES }, | ||||
|         { "shared", 1, NULL, 'e' }, | ||||
| @ -432,9 +428,7 @@ int main(int argc, char **argv) | ||||
|     int fd; | ||||
|     bool seen_cache = false; | ||||
|     bool seen_discard = false; | ||||
| #ifdef CONFIG_LINUX_AIO | ||||
|     bool seen_aio = false; | ||||
| #endif | ||||
|     pthread_t client_thread; | ||||
|     const char *fmt = NULL; | ||||
|     Error *local_err = NULL; | ||||
| @ -467,7 +461,6 @@ int main(int argc, char **argv) | ||||
|                 errx(EXIT_FAILURE, "Invalid cache mode `%s'", optarg); | ||||
|             } | ||||
|             break; | ||||
| #ifdef CONFIG_LINUX_AIO | ||||
|         case QEMU_NBD_OPT_AIO: | ||||
|             if (seen_aio) { | ||||
|                 errx(EXIT_FAILURE, "--aio can only be specified once"); | ||||
| @ -481,7 +474,6 @@ int main(int argc, char **argv) | ||||
|                errx(EXIT_FAILURE, "invalid aio mode `%s'", optarg); | ||||
|             } | ||||
|             break; | ||||
| #endif | ||||
|         case QEMU_NBD_OPT_DISCARD: | ||||
|             if (seen_discard) { | ||||
|                 errx(EXIT_FAILURE, "--discard can only be specified once"); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Stefan Hajnoczi
						Stefan Hajnoczi