1. 11 12月, 2012 4 次提交
  2. 25 11月, 2012 1 次提交
  3. 15 11月, 2012 2 次提交
  4. 24 10月, 2012 10 次提交
  5. 05 10月, 2012 1 次提交
  6. 29 9月, 2012 8 次提交
  7. 24 9月, 2012 5 次提交
    • J
      block: remove keep_read_only flag from BlockDriverState struct · dc1c13d9
      Jeff Cody 提交于
      The keep_read_only flag is no longer used, in favor of the bdrv
      flag BDRV_O_ALLOW_RDWR.
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      dc1c13d9
    • J
      block: convert bdrv_commit() to use bdrv_reopen() · 0bce597d
      Jeff Cody 提交于
      Currently, bdrv_commit() reopens images r/w itself, via risky
      _delete() and _open() calls. Use the new safe method for drive reopen.
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      0bce597d
    • J
      block: Framework for reopening files safely · e971aa12
      Jeff Cody 提交于
      This is based on Supriya Kannery's bdrv_reopen() patch series.
      
      This provides a transactional method to reopen multiple
      images files safely.
      
      Image files are queue for reopen via bdrv_reopen_queue(), and the
      reopen occurs when bdrv_reopen_multiple() is called.  Changes are
      staged in bdrv_reopen_prepare() and in the equivalent driver level
      functions.  If any of the staged images fails a prepare, then all
      of the images left untouched, and the staged changes for each image
      abandoned.
      
      Block drivers are passed a reopen state structure, that contains:
          * BDS to reopen
          * flags for the reopen
          * opaque pointer for any driver-specific data that needs to be
            persistent from _prepare to _commit/_abort
          * reopen queue pointer, if the driver needs to queue additional
            BDS for a reopen
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      e971aa12
    • J
      block: make bdrv_set_enable_write_cache() modify open_flags · 55b110f2
      Jeff Cody 提交于
      bdrv_set_enable_write_cache() sets the bs->enable_write_cache flag,
      but without the flag recorded in bs->open_flags, then next time
      a reopen() is performed the enable_write_cache setting may be
      inadvertently lost.
      
      This will set the flag in open_flags, so it is preserved across
      reopens.
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      55b110f2
    • J
      block: correctly set the keep_read_only flag · be028adc
      Jeff Cody 提交于
      I believe the bs->keep_read_only flag is supposed to reflect
      the initial open state of the device. If the device is initially
      opened R/O, then commit operations, or reopen operations changing
      to R/W, are prohibited.
      
      Currently, the keep_read_only flag is only accurate for the active
      layer, and its backing file. Subsequent images end up always having
      the keep_read_only flag set.
      
      For instance, what happens now:
      
      [  base  ]  kro = 1, ro = 1
          |
          v
      [ snap-1 ]  kro = 1, ro = 1
          |
          v
      [ snap-2 ]  kro = 0, ro = 1
          |
          v
      [ active ]  kro = 0, ro = 0
      
      What we want:
      
      [  base  ]  kro = 0, ro = 1
          |
          v
      [ snap-1 ]  kro = 0, ro = 1
          |
          v
      [ snap-2 ]  kro = 0, ro = 1
          |
          v
      [ active ]  kro = 0, ro = 0
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      be028adc
  8. 12 9月, 2012 2 次提交
  9. 15 8月, 2012 1 次提交
  10. 14 8月, 2012 1 次提交
  11. 03 8月, 2012 2 次提交
  12. 28 7月, 2012 1 次提交
  13. 17 7月, 2012 2 次提交
    • M
      block: Geometry and translation hints are now useless, purge them · 2b584959
      Markus Armbruster 提交于
      There are two producers of these hints: drive_init() on behalf of
      -drive, and hd_geometry_guess().
      
      The only consumer of the hint is hd_geometry_guess().
      
      The callers of hd_geometry_guess() call it only when drive_init()
      didn't set the hints.  Therefore, drive_init()'s hints are never used.
      
      Thus, hd_geometry_guess() only ever sees hints it produced itself in a
      prior call.  Only the first call computes something, subsequent calls
      just repeat the first call's results.  However, hd_geometry_guess() is
      never called more than once: the device models don't, and the block
      device is destroyed on unplug.  Thus, dropping the repeat feature
      doesn't break anything now.
      
      If a block device wasn't destroyed on unplug and could be reused with
      a new device, then repeating old results would be wrong.  Thus,
      dropping the repeat feature prevents future breakage.
      
      This renders the hints unused.  Purge them from the block layer.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      2b584959
    • M
      hd-geometry: Move disk geometry guessing back from block.c · 9db1c0f7
      Markus Armbruster 提交于
      Commit f3d54fc4 factored it out of hw/ide.c for reuse.  Sensible,
      except it was put into block.c.  Device-specific functionality should
      be kept in device code, not the block layer.  Move it to
      hw/hd-geometry.c, and make stylistic changes required to keep
      checkpatch.pl happy.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      9db1c0f7