block/nfs: Add create_opts
The nfs protocol driver is capable of creating images, but did not specify any creation options. Fix it. A way to test this issue is the following: $ qemu-img create -f nfs nfs://127.0.0.1/foo.qcow2 64M Without this patch, it segfaults. With this patch, it does not. However, this is not something that should really work; qemu-img should check whether the parameter for the -f option (and -O for convert) is indeed a format, and error out if it is not. Therefore, I am not making it an iotest. Cc: qemu-stable@nongnu.org Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									1bcb15cf77
								
							
						
					
					
						commit
						fd752801ae
					
				
							
								
								
									
										15
									
								
								block/nfs.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								block/nfs.c
									
									
									
									
									
								
							@ -409,6 +409,19 @@ out:
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static QemuOptsList nfs_create_opts = {
 | 
			
		||||
    .name = "nfs-create-opts",
 | 
			
		||||
    .head = QTAILQ_HEAD_INITIALIZER(nfs_create_opts.head),
 | 
			
		||||
    .desc = {
 | 
			
		||||
        {
 | 
			
		||||
            .name = BLOCK_OPT_SIZE,
 | 
			
		||||
            .type = QEMU_OPT_SIZE,
 | 
			
		||||
            .help = "Virtual disk size"
 | 
			
		||||
        },
 | 
			
		||||
        { /* end of list */ }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static int nfs_file_create(const char *url, QemuOpts *opts, Error **errp)
 | 
			
		||||
{
 | 
			
		||||
    int ret = 0;
 | 
			
		||||
@ -470,6 +483,8 @@ static BlockDriver bdrv_nfs = {
 | 
			
		||||
 | 
			
		||||
    .instance_size                  = sizeof(NFSClient),
 | 
			
		||||
    .bdrv_needs_filename            = true,
 | 
			
		||||
    .create_opts                    = &nfs_create_opts,
 | 
			
		||||
 | 
			
		||||
    .bdrv_has_zero_init             = nfs_has_zero_init,
 | 
			
		||||
    .bdrv_get_allocated_file_size   = nfs_get_allocated_file_size,
 | 
			
		||||
    .bdrv_truncate                  = nfs_file_truncate,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user