• P
    coroutine: move entry argument to qemu_coroutine_create · 0b8b8753
    Paolo Bonzini 提交于
    In practice the entry argument is always known at creation time, and
    it is confusing that sometimes qemu_coroutine_enter is used with a
    non-NULL argument to re-enter a coroutine (this happens in
    block/sheepdog.c and tests/test-coroutine.c).  So pass the opaque value
    at creation time, for consistency with e.g. aio_bh_new.
    
    Mostly done with the following semantic patch:
    
    @ entry1 @
    expression entry, arg, co;
    @@
    - co = qemu_coroutine_create(entry);
    + co = qemu_coroutine_create(entry, arg);
      ...
    - qemu_coroutine_enter(co, arg);
    + qemu_coroutine_enter(co);
    
    @ entry2 @
    expression entry, arg;
    identifier co;
    @@
    - Coroutine *co = qemu_coroutine_create(entry);
    + Coroutine *co = qemu_coroutine_create(entry, arg);
      ...
    - qemu_coroutine_enter(co, arg);
    + qemu_coroutine_enter(co);
    
    @ entry3 @
    expression entry, arg;
    @@
    - qemu_coroutine_enter(qemu_coroutine_create(entry), arg);
    + qemu_coroutine_enter(qemu_coroutine_create(entry, arg));
    
    @ reentry @
    expression co;
    @@
    - qemu_coroutine_enter(co, NULL);
    + qemu_coroutine_enter(co);
    
    except for the aforementioned few places where the semantic patch
    stumbled (as expected) and for test_co_queue, which would otherwise
    produce an uninitialized variable warning.
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: NFam Zheng <famz@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    0b8b8753
nfs.c 17.4 KB