1. 16 6月, 2017 1 次提交
  2. 29 5月, 2017 1 次提交
    • K
      mirror: Drop permissions on s->target on completion · 63c8ef28
      Kevin Wolf 提交于
      This fixes an assertion failure that was triggered by qemu-iotests 129
      on some CI host, while the same test case didn't seem to fail on other
      hosts.
      
      Essentially the problem is that the blk_unref(s->target) in
      mirror_exit() doesn't necessarily mean that the BlockBackend goes away
      immediately. It is possible that the job completion was triggered nested
      in mirror_drain(), which looks like this:
      
          BlockBackend *target = s->target;
          blk_ref(target);
          blk_drain(target);
          blk_unref(target);
      
      In this case, the write permissions for s->target are retained until
      after blk_drain(), which makes removing mirror_top_bs fail for the
      active commit case (can't have a writable backing file in the chain
      without the filter driver).
      
      Explicitly dropping the permissions first means that the additional
      reference doesn't hurt and the job can complete successfully even if
      called from the nested blk_drain().
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      Reviewed-by: NMax Reitz <mreitz@redhat.com>
      63c8ef28
  3. 25 5月, 2017 1 次提交
  4. 28 4月, 2017 1 次提交
  5. 24 4月, 2017 2 次提交
  6. 07 4月, 2017 2 次提交
  7. 24 3月, 2017 1 次提交
    • E
      trace: Fix backwards mirror_yield parameters · 67adf4b3
      Eric Blake 提交于
      block/trace-events lists the parameters for mirror_yield
      consistently with other mirror events (cnt just after s, like in
      mirror_before_sleep; in_flight last, like in mirror_yield_in_flight).
      But the callers were passing parameters in the wrong order, leading
      to poor trace messages, including type truncation when there are
      more than 4G dirty sectors involved.  Broken since its introduction
      in commit bd48bde8.
      
      While touching this, ensure that all callers use the same type
      (uint64_t) for cnt, as a later patch will enable the compiler to do
      stricter type-checking.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      67adf4b3
  8. 17 3月, 2017 1 次提交
  9. 13 3月, 2017 1 次提交
  10. 07 3月, 2017 4 次提交
  11. 01 3月, 2017 9 次提交
  12. 28 2月, 2017 1 次提交
  13. 24 2月, 2017 1 次提交
  14. 21 2月, 2017 2 次提交
  15. 15 11月, 2016 3 次提交
    • P
      mirror: do not flush every time the disks are synced · bdffb31d
      Paolo Bonzini 提交于
      This puts a huge strain on the disks when there are many concurrent
      migrations.  With this patch we only flush twice: just before issuing
      the event, and just before pivoting to the destination.  If management
      will complete the job close to the BLOCK_JOB_READY event, the cost of
      the second flush should be small anyway.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 20161109162008.27287-2-pbonzini@redhat.com
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      bdffb31d
    • J
      blockjob: add block_job_start · 5ccac6f1
      John Snow 提交于
      Instead of automatically starting jobs at creation time via backup_start
      et al, we'd like to return a job object pointer that can be started
      manually at later point in time.
      
      For now, add the block_job_start mechanism and start the jobs
      automatically as we have been doing, with conversions job-by-job coming
      in later patches.
      
      Of note: cancellation of unstarted jobs will perform all the normal
      cleanup as if the job had started, particularly abort and clean. The
      only difference is that we will not emit any events, because the job
      never actually started.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Message-id: 1478587839-9834-5-git-send-email-jsnow@redhat.com
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      5ccac6f1
    • J
      blockjob: add .start field · a7815a76
      John Snow 提交于
      Add an explicit start field to specify the entrypoint. We already have
      ownership of the coroutine itself AND managing the lifetime of the
      coroutine, let's take control of creation of the coroutine, too.
      
      This will allow us to delay creation of the actual coroutine until we
      know we'll actually start a BlockJob in block_job_start. This avoids
      the sticky question of how to "un-create" a Coroutine that hasn't been
      started yet.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NKevin Wolf <kwolf@redhat.com>
      Message-id: 1478587839-9834-4-git-send-email-jsnow@redhat.com
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      a7815a76
  16. 01 11月, 2016 5 次提交
  17. 31 10月, 2016 2 次提交
  18. 28 10月, 2016 2 次提交