Patchwork [02/19] qcow2: Remove bogus unlock of s->lock

login
register
mail settings
Submitter Kevin Wolf
Date March 25, 2013, 5:30 p.m.
Message ID <1364232620-5293-3-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/230768/
State New
Headers show

Comments

Kevin Wolf - March 25, 2013, 5:30 p.m.
The unlock wakes up the next coroutine, but the currently running
coroutine will lock it again before it yields, so this doesn't make a
lot of sense.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/qcow2.c | 2 --
 1 file changed, 2 deletions(-)
Eric Blake - March 25, 2013, 7:01 p.m.
On 03/25/2013 11:30 AM, Kevin Wolf wrote:
> The unlock wakes up the next coroutine, but the currently running
> coroutine will lock it again before it yields, so this doesn't make a
> lot of sense.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block/qcow2.c | 2 --
>  1 file changed, 2 deletions(-)

Code matches the commit message, but my familiarity with coroutines is
too weak to give a strong review.

> 
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 8ea696a..3f7edf5 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -869,9 +869,7 @@ static coroutine_fn int qcow2_co_writev(BlockDriverState *bs,
>                  QLIST_REMOVE(l2meta, next_in_flight);
>              }
>  
> -            qemu_co_mutex_unlock(&s->lock);
>              qemu_co_queue_restart_all(&l2meta->dependent_requests);
> -            qemu_co_mutex_lock(&s->lock);
>  
>              g_free(l2meta);
>              l2meta = NULL;
>

Patch

diff --git a/block/qcow2.c b/block/qcow2.c
index 8ea696a..3f7edf5 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -869,9 +869,7 @@  static coroutine_fn int qcow2_co_writev(BlockDriverState *bs,
                 QLIST_REMOVE(l2meta, next_in_flight);
             }
 
-            qemu_co_mutex_unlock(&s->lock);
             qemu_co_queue_restart_all(&l2meta->dependent_requests);
-            qemu_co_mutex_lock(&s->lock);
 
             g_free(l2meta);
             l2meta = NULL;