qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC 4/8] Fix some direct calls from non-coroutine_fn to coroutine_f


From: Paolo Bonzini
Subject: Re: [RFC 4/8] Fix some direct calls from non-coroutine_fn to coroutine_fn
Date: Sat, 2 Jul 2022 16:13:24 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0

On 7/2/22 13:33, Alberto Faria wrote:
@@ -1537,8 +1537,9 @@ static void blk_aio_read_entry(void *opaque)
      QEMUIOVector *qiov = rwco->iobuf;
assert(qiov->size == acb->bytes);
-    rwco->ret = blk_co_do_preadv(rwco->blk, rwco->offset, acb->bytes,
-                                 qiov, rwco->flags);
+    rwco->ret = __allow_coroutine_fn_call(
+        blk_co_do_preadv(rwco->blk, rwco->offset, acb->bytes, qiov,
+                         rwco->flags));
      blk_aio_complete(acb);
  }
@@ -1682,7 +1683,8 @@ static void blk_aio_ioctl_entry(void *opaque)
      BlkAioEmAIOCB *acb = opaque;
      BlkRwCo *rwco = &acb->rwco;
- rwco->ret = blk_co_do_ioctl(rwco->blk, rwco->offset, rwco->iobuf);
+    rwco->ret = __allow_coroutine_fn_call(
+        blk_co_do_ioctl(rwco->blk, rwco->offset, rwco->iobuf));
blk_aio_complete(acb);
  }
@@ -1716,7 +1718,8 @@ static void blk_aio_pdiscard_entry(void *opaque)
      BlkAioEmAIOCB *acb = opaque;
      BlkRwCo *rwco = &acb->rwco;
- rwco->ret = blk_co_do_pdiscard(rwco->blk, rwco->offset, acb->bytes);
+    rwco->ret = __allow_coroutine_fn_call(
+        blk_co_do_pdiscard(rwco->blk, rwco->offset, acb->bytes));
      blk_aio_complete(acb);
  }
@@ -1772,7 +1775,7 @@ static void blk_aio_flush_entry(void *opaque)
      BlkAioEmAIOCB *acb = opaque;
      BlkRwCo *rwco = &acb->rwco;
- rwco->ret = blk_co_do_flush(rwco->blk);
+    rwco->ret = __allow_coroutine_fn_call(blk_co_do_flush(rwco->blk));
      blk_aio_complete(acb);
  }

These functions should be coroutine_fn (all coroutine entry points should be).

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]