qemu-img: Allow creating zero sized images
A size of 0 should be valid and cannot be treated as "missing value". Use -1 for this purpose instead. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									5819c91806
								
							
						
					
					
						commit
						9f56640c85
					
				@ -297,13 +297,16 @@ static int img_create(int argc, char **argv)
 | 
				
			|||||||
        return 0;
 | 
					        return 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Create parameter list with default values */
 | 
				
			||||||
 | 
					    param = parse_option_parameters("", drv->create_options, param);
 | 
				
			||||||
 | 
					    set_option_parameter_int(param, BLOCK_OPT_SIZE, -1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Parse -o options */
 | 
				
			||||||
    if (options) {
 | 
					    if (options) {
 | 
				
			||||||
        param = parse_option_parameters(options, drv->create_options, param);
 | 
					        param = parse_option_parameters(options, drv->create_options, param);
 | 
				
			||||||
        if (param == NULL) {
 | 
					        if (param == NULL) {
 | 
				
			||||||
            error("Invalid options for file format '%s'.", fmt);
 | 
					            error("Invalid options for file format '%s'.", fmt);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        param = parse_option_parameters("", drv->create_options, param);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Get the filename */
 | 
					    /* Get the filename */
 | 
				
			||||||
@ -321,7 +324,7 @@ static int img_create(int argc, char **argv)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // The size for the image must always be specified, with one exception:
 | 
					    // The size for the image must always be specified, with one exception:
 | 
				
			||||||
    // If we are using a backing file, we can obtain the size from there
 | 
					    // If we are using a backing file, we can obtain the size from there
 | 
				
			||||||
    if (get_option_parameter(param, BLOCK_OPT_SIZE)->value.n == 0) {
 | 
					    if (get_option_parameter(param, BLOCK_OPT_SIZE)->value.n == -1) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        QEMUOptionParameter *backing_file =
 | 
					        QEMUOptionParameter *backing_file =
 | 
				
			||||||
            get_option_parameter(param, BLOCK_OPT_BACKING_FILE);
 | 
					            get_option_parameter(param, BLOCK_OPT_BACKING_FILE);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user