On Wed, Nov 29, 2017 at 10:49:50PM +0800, Fam Zheng wrote: > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > blockjob.c | 47 ++++++++++++++++++++++++++++++----------------- > 1 file changed, 30 insertions(+), 17 deletions(-) > > diff --git a/blockjob.c b/blockjob.c > index ff9a614531..86d060c89c 100644 > --- a/blockjob.c > +++ b/blockjob.c > @@ -148,6 +148,23 @@ static void block_job_attached_aio_context(AioContext > *new_context, > void *opaque); > static void block_job_detach_aio_context(void *opaque); > > +static void block_job_drained_begin(void *opaque) > +{ > + BlockJob *job = opaque; > + block_job_pause(job); > +}
This is buggy because block_job_pause() increments a counter. Remember the .drained_begin() semantics are that it can be called any number of times (see comment in previous patch)!
signature.asc
Description: PGP signature