1. 01 7月, 2014 1 次提交
    • C
      qemu-img create: add 'nocow' option · 4ab15590
      Chunyan Liu 提交于
      Add 'nocow' option so that users could have a chance to set NOCOW flag to
      newly created files. It's useful on btrfs file system to enhance performance.
      
      Btrfs has low performance when hosting VM images, even more when the guest
      in those VM are also using btrfs as file system. One way to mitigate this bad
      performance is to turn off COW attributes on VM files. Generally, there are
      two ways to turn off NOCOW on btrfs: a) by mounting fs with nodatacow, then
      all newly created files will be NOCOW. b) per file. Add the NOCOW file
      attribute. It could only be done to empty or new files.
      
      This patch tries the second way, according to the option, it could add NOCOW
      per file.
      
      For most block drivers, since the create file step is in raw-posix.c, so we
      can do setting NOCOW flag ioctl in raw-posix.c only.
      
      But there are some exceptions, like block/vpc.c and block/vdi.c, they are
      creating file by calling qemu_open directly. For them, do the same setting
      NOCOW flag ioctl work in them separately.
      
      [Fixed up 082.out due to the new 'nocow' creation option
      --Stefan]
      Signed-off-by: NChunyan Liu <cyliu@suse.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      4ab15590
  2. 26 6月, 2014 1 次提交
  3. 16 6月, 2014 3 次提交
  4. 04 6月, 2014 1 次提交
    • S
      qed: use BlockDriverState's AioContext · a8c868c3
      Stefan Hajnoczi 提交于
      Drop the assumption that we're using the main AioContext.  Convert
      qemu_bh_new() to aio_bh_new() and qemu_aio_wait() to aio_poll() so we're
      using the BlockDriverState's AioContext.
      
      Implement .bdrv_detach/attach_aio_context() interfaces to move the
      QED_F_NEED_CHECK timer from the old AioContext to the new one.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      a8c868c3
  5. 22 4月, 2014 1 次提交
  6. 19 3月, 2014 1 次提交
  7. 13 3月, 2014 1 次提交
    • K
      block: Update image size in bdrv_invalidate_cache() · 3456a8d1
      Kevin Wolf 提交于
      After migration has completed, we call bdrv_invalidate_cache() so that
      drivers which cache some data drop their stale copy of the data and
      reread it from the image file to get a new version of data that the
      source modified while the migration was running.
      
      Reloading metadata from the image file is useless, though, if the size
      of the image file stays stale (this is a value that is cached for all
      image formats in block.c). Reads from (meta)data after the old EOF
      return only zeroes, causing image corruption.
      
      We need to update bs->total_sectors in all layers that could potentially
      have changed their size (i.e. backing files are not a concern - if they
      are changed, we're in bigger trouble)
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      3456a8d1
  8. 22 2月, 2014 3 次提交
  9. 01 2月, 2014 1 次提交
  10. 25 1月, 2014 1 次提交
  11. 22 1月, 2014 1 次提交
  12. 03 12月, 2013 2 次提交
  13. 28 11月, 2013 1 次提交
  14. 12 9月, 2013 4 次提交
  15. 06 9月, 2013 3 次提交
  16. 23 8月, 2013 1 次提交
  17. 28 6月, 2013 1 次提交
    • P
      block: change default of .has_zero_init to 0 · 3ac21627
      Peter Lieven 提交于
      .has_zero_init defaults to 1 for all formats and protocols.
      
      this is a dangerous default since this means that all
      new added drivers need to manually overwrite it to 0 if
      they do not ensure that a device is zero initialized
      after bdrv_create().
      
      if a driver needs to explicitly set this value to
      1 its easier to verify the correctness in the review process.
      
      during review of the existing drivers it turned out
      that ssh and gluster had a wrong default of 1.
      both protocols support host_devices as backend
      which are not by default zero initialized. this
      wrong assumption will lead to possible corruption
      if qemu-img convert is used to write to such a backend.
      
      vpc and vmdk also defaulted to 1 altough they support
      fixed respectively flat extends. this has to be addresses
      in separate patches. both formats as well as the mentioned
      ssh and gluster are turned to the default of 0 with this
      patch for safety.
      
      a similar problem with the wrong default existed for
      iscsi most likely because the driver developer did
      oversee the default value of 1.
      Signed-off-by: NPeter Lieven <pl@kamp.de>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      3ac21627
  18. 23 3月, 2013 1 次提交
  19. 15 3月, 2013 1 次提交
  20. 26 1月, 2013 1 次提交
  21. 19 12月, 2012 3 次提交
  22. 15 11月, 2012 1 次提交
  23. 24 9月, 2012 1 次提交
  24. 29 8月, 2012 1 次提交
  25. 10 8月, 2012 2 次提交
  26. 09 7月, 2012 1 次提交
  27. 15 6月, 2012 1 次提交
    • K
      qemu-img check -r for repairing images · 4534ff54
      Kevin Wolf 提交于
      The QED block driver already provides the functionality to not only
      detect inconsistencies in images, but also fix them. However, this
      functionality cannot be manually invoked with qemu-img, but the
      check happens only automatically during bdrv_open().
      
      This adds a -r switch to qemu-img check that allows manual invocation
      of an image repair.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      4534ff54