• Kevin Wolf's avatar
    block: Allow omitting the file name when using driver-specific options · c2ad1b0c
    Kevin Wolf authored
    After this patch, using -drive with an empty file name continues to open
    the file if driver-specific options are used. If no driver-specific
    options are specified, the semantics stay as it was: It defines a drive
    without an inserted medium.
    
    In order to achieve this, bdrv_open() must be made safe to work with a
    NULL filename parameter. The assumption that is made is that only block
    drivers which implement bdrv_parse_filename() support using driver
    specific options and could therefore work without a filename. These
    drivers must make sure to cope with NULL in their implementation of
    .bdrv_open() (this is only NBD for now). For all other drivers, the
    block layer code will make sure to error out before calling into their
    code - they can't possibly work without a filename.
    
    Now an NBD connection can be opened like this:
    
      qemu-system-x86_64 -drive file.driver=nbd,file.port=1234,file.host=::1
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    c2ad1b0c
blockdev.c 46.5 KB