1. 16 6月, 2017 8 次提交
  2. 02 6月, 2017 1 次提交
  3. 29 5月, 2017 1 次提交
    • M
      block/file-*: *_parse_filename() and colons · 03c320d8
      Max Reitz 提交于
      The file drivers' *_parse_filename() implementations just strip the
      optional protocol prefix off the filename. However, for e.g.
      "file:foo:bar", this would lead to "foo:bar" being stored as the BDS's
      filename which looks like it should be managed using the "foo" protocol.
      This is especially troublesome if you then try to resolve a backing
      filename based on "foo:bar".
      
      This issue can only occur if the stripped part is a relative filename
      ("file:/foo:bar" will be shortened to "/foo:bar" and having a slash
      before the first colon means that "/foo" is not recognized as a protocol
      part). Therefore, we can easily fix it by prepending "./" to such
      filenames.
      
      Before this patch:
      $ ./qemu-img create -f qcow2 backing.qcow2 64M
      Formatting 'backing.qcow2', fmt=qcow2 size=67108864 encryption=off
          cluster_size=65536 lazy_refcounts=off refcount_bits=16
      $ ./qemu-img create -f qcow2 -b backing.qcow2 file:top:image.qcow2
      Formatting 'file:top:image.qcow2', fmt=qcow2 size=67108864
          backing_file=backing.qcow2 encryption=off cluster_size=65536
          lazy_refcounts=off refcount_bits=16
      $ ./qemu-io file:top:image.qcow2
      can't open device file:top:image.qcow2: Could not open backing file:
          Unknown protocol 'top'
      
      After this patch:
      $ ./qemu-io file:top:image.qcow2
      [no error]
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20170522195217.12991-3-mreitz@redhat.com
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      03c320d8
  4. 11 5月, 2017 4 次提交
  5. 28 4月, 2017 2 次提交
  6. 24 4月, 2017 1 次提交
  7. 17 3月, 2017 1 次提交
  8. 07 3月, 2017 2 次提交
  9. 01 3月, 2017 11 次提交
  10. 21 2月, 2017 1 次提交
  11. 16 1月, 2017 1 次提交
    • P
      block: get rid of bdrv_io_unplugged_begin/end · 8f90b5e9
      Paolo Bonzini 提交于
      bdrv_io_plug and bdrv_io_unplug are only called (via their
      BlockBackend equivalents) after starting asynchronous I/O.
      bdrv_drain is not going to be called while they are running,
      because---even if a coroutine runs for some reason---it will
      only drain in the next iteration of the event loop through
      bdrv_co_yield_to_drain.
      
      So this mechanism is unnecessary, get rid of it.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 20161129113334.605-1-pbonzini@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      8f90b5e9
  12. 09 1月, 2017 1 次提交
  13. 15 11月, 2016 1 次提交
    • J
      blockjob: refactor backup_start as backup_job_create · 111049a4
      John Snow 提交于
      Refactor backup_start as backup_job_create, which only creates the job,
      but does not automatically start it. The old interface, 'backup_start',
      is not kept in favor of limiting the number of nearly-identical interfaces
      that would have to be edited to keep up with QAPI changes in the future.
      
      Callers that wish to synchronously start the backup_block_job can
      instead just call block_job_start immediately after calling
      backup_job_create.
      
      Transactions are updated to use the new interface, calling block_job_start
      only during the .commit phase, which helps prevent race conditions where
      jobs may finish before we even finish building the transaction. This may
      happen, for instance, during empty block backup jobs.
      Reported-by: NVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Message-id: 1478587839-9834-6-git-send-email-jsnow@redhat.com
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      111049a4
  14. 01 11月, 2016 2 次提交
  15. 28 10月, 2016 3 次提交