qemu-nbd: add --discard option
Similar to --cache and --aio, this option mimics the discard suboption of "-drive". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									a9384aff53
								
							
						
					
					
						commit
						ded9d2d5e2
					
				
							
								
								
									
										18
									
								
								qemu-nbd.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								qemu-nbd.c
									
									
									
									
									
								
							| @ -33,9 +33,10 @@ | ||||
| #include <libgen.h> | ||||
| #include <pthread.h> | ||||
| 
 | ||||
| #define SOCKET_PATH         "/var/lock/qemu-nbd-%s" | ||||
| #define QEMU_NBD_OPT_CACHE  1 | ||||
| #define QEMU_NBD_OPT_AIO    2 | ||||
| #define SOCKET_PATH          "/var/lock/qemu-nbd-%s" | ||||
| #define QEMU_NBD_OPT_CACHE   1 | ||||
| #define QEMU_NBD_OPT_AIO     2 | ||||
| #define QEMU_NBD_OPT_DISCARD 3 | ||||
| 
 | ||||
| static NBDExport *exp; | ||||
| static int verbose; | ||||
| @ -330,6 +331,7 @@ int main(int argc, char **argv) | ||||
| #ifdef CONFIG_LINUX_AIO | ||||
|         { "aio", 1, NULL, QEMU_NBD_OPT_AIO }, | ||||
| #endif | ||||
|         { "discard", 1, NULL, QEMU_NBD_OPT_DISCARD }, | ||||
|         { "shared", 1, NULL, 'e' }, | ||||
|         { "persistent", 0, NULL, 't' }, | ||||
|         { "verbose", 0, NULL, 'v' }, | ||||
| @ -344,6 +346,7 @@ int main(int argc, char **argv) | ||||
|     int ret; | ||||
|     int fd; | ||||
|     bool seen_cache = false; | ||||
|     bool seen_discard = false; | ||||
| #ifdef CONFIG_LINUX_AIO | ||||
|     bool seen_aio = false; | ||||
| #endif | ||||
| @ -389,6 +392,15 @@ int main(int argc, char **argv) | ||||
|             } | ||||
|             break; | ||||
| #endif | ||||
|         case QEMU_NBD_OPT_DISCARD: | ||||
|             if (seen_discard) { | ||||
|                 errx(EXIT_FAILURE, "--discard can only be specified once"); | ||||
|             } | ||||
|             seen_discard = true; | ||||
|             if (bdrv_parse_discard_flags(optarg, &flags) == -1) { | ||||
|                 errx(EXIT_FAILURE, "Invalid discard mode `%s'", optarg); | ||||
|             } | ||||
|             break; | ||||
|         case 'b': | ||||
|             bindto = optarg; | ||||
|             break; | ||||
|  | ||||
| @ -35,6 +35,10 @@ Export QEMU disk image using NBD protocol. | ||||
| @item --aio=@var{aio} | ||||
|   choose asynchronous I/O mode between @samp{threads} (the default) | ||||
|   and @samp{native} (Linux only). | ||||
| @item --discard=@var{discard} | ||||
|   toggles whether @dfn{discard} (also known as @dfn{trim} or @dfn{unmap}) | ||||
|   requests are ignored or passed to the filesystem.  The default is no | ||||
|   (@samp{--discard=ignore}). | ||||
| @item -c, --connect=@var{dev} | ||||
|   connect @var{filename} to NBD device @var{dev} | ||||
| @item -d, --disconnect | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Paolo Bonzini
						Paolo Bonzini