1. 03 5月, 2010 3 次提交
    • K
      block: Split bdrv_open · b6ce07aa
      Kevin Wolf 提交于
      bdrv_open contains quite some code that is only useful for opening images (as
      opposed to opening files by a protocol), for example snapshots.
      
      This patch splits the code so that we have bdrv_open_file() for files (uses
      protocols), bdrv_open() for images (uses format drivers) and bdrv_open_common()
      for the code common for opening both images and files.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      b6ce07aa
    • C
      block: separate raw images from the file protocol · 84a12e66
      Christoph Hellwig 提交于
      We're running into various problems because the "raw" file access, which
      is used internally by the various image formats is entangled with the
      "raw" image format, which maps the VM view 1:1 to a file system.
      
      This patch renames the raw file backends to the file protocol which
      is treated like other protocols (e.g. nbd and http) and adds a new
      "raw" image format which is just a wrapper around calls to the underlying
      protocol.
      
      The patch is surprisingly simple, besides changing the probing logical
      in block.c to only look for image formats when using bdrv_open and
      renaming of the old raw protocols to file there's almost nothing in there.
      
      For creating images, a new bdrv_create_file is introduced which guesses the
      protocol to use. This allows using qemu-img create -f raw (or just using the
      default) for both files and host devices. Converting the other format drivers
      to use this function to create their images is left for later patches.
      
      The only issues still open are in the handling of the host devices.
      Firstly in current qemu we can specifiy the host* format names
      on various command line acceping images, but the new code can't
      do that without adding some translation.  Second the layering breaks
      the no_zero_init flag in the BlockDriver used by qemu-img.  I'm not
      happy how this is done per-driver instead of per-state so I'll
      prepare a separate patch to clean this up.
      
      There's some more cleanup opportunity after this patch, e.g. using
      separate lists and registration functions for image formats vs
      protocols and maybe even host drivers, but this can be done at a
      later stage.
      
      Also there's a check for protocol in bdrv_open for the BDRV_O_SNAPSHOT
      case that I don't quite understand, but which I fear won't work as
      expected - possibly even before this patch.
      
      Note that this patch requires various recent block patches from Kevin
      and me, which should all be in his block queue.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      84a12e66
    • B
      Fix missing '|' in '|=', spotted by clang analyzer · ace22f69
      Blue Swirl 提交于
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      ace22f69
  2. 02 5月, 2010 4 次提交
  3. 28 4月, 2010 18 次提交
  4. 27 4月, 2010 15 次提交