qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: anthony@codemonkey.ws
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 22/24] block: use coroutine interface for raw format
Date: Fri, 14 Oct 2011 18:49:17 +0200	[thread overview]
Message-ID: <1318610959-17971-23-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1318610959-17971-1-git-send-email-kwolf@redhat.com>

From: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>

The raw format delegates all operations to bs->file (the protocol).
Previously this block driver exposed both sync and aio interfaces.
Since the block layer now works in terms of coroutines, expose the
coroutine interfaces and drop the others.  This avoids unnecessary
emulation of sync and aio interfaces.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/raw.c |   32 ++++++++------------------------
 1 files changed, 8 insertions(+), 24 deletions(-)

diff --git a/block/raw.c b/block/raw.c
index 63cf2d3..5ca606b 100644
--- a/block/raw.c
+++ b/block/raw.c
@@ -9,30 +9,16 @@ static int raw_open(BlockDriverState *bs, int flags)
     return 0;
 }
 
-static int raw_read(BlockDriverState *bs, int64_t sector_num,
-                    uint8_t *buf, int nb_sectors)
+static int coroutine_fn raw_co_readv(BlockDriverState *bs, int64_t sector_num,
+                                     int nb_sectors, QEMUIOVector *qiov)
 {
-    return bdrv_read(bs->file, sector_num, buf, nb_sectors);
+    return bdrv_co_readv(bs->file, sector_num, nb_sectors, qiov);
 }
 
-static int raw_write(BlockDriverState *bs, int64_t sector_num,
-                     const uint8_t *buf, int nb_sectors)
+static int coroutine_fn raw_co_writev(BlockDriverState *bs, int64_t sector_num,
+                                      int nb_sectors, QEMUIOVector *qiov)
 {
-    return bdrv_write(bs->file, sector_num, buf, nb_sectors);
-}
-
-static BlockDriverAIOCB *raw_aio_readv(BlockDriverState *bs,
-    int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
-    BlockDriverCompletionFunc *cb, void *opaque)
-{
-    return bdrv_aio_readv(bs->file, sector_num, qiov, nb_sectors, cb, opaque);
-}
-
-static BlockDriverAIOCB *raw_aio_writev(BlockDriverState *bs,
-    int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
-    BlockDriverCompletionFunc *cb, void *opaque)
-{
-    return bdrv_aio_writev(bs->file, sector_num, qiov, nb_sectors, cb, opaque);
+    return bdrv_co_writev(bs->file, sector_num, nb_sectors, qiov);
 }
 
 static void raw_close(BlockDriverState *bs)
@@ -129,15 +115,13 @@ static BlockDriver bdrv_raw = {
 
     .bdrv_open          = raw_open,
     .bdrv_close         = raw_close,
-    .bdrv_read          = raw_read,
-    .bdrv_write         = raw_write,
+    .bdrv_co_readv      = raw_co_readv,
+    .bdrv_co_writev     = raw_co_writev,
     .bdrv_flush         = raw_flush,
     .bdrv_probe         = raw_probe,
     .bdrv_getlength     = raw_getlength,
     .bdrv_truncate      = raw_truncate,
 
-    .bdrv_aio_readv     = raw_aio_readv,
-    .bdrv_aio_writev    = raw_aio_writev,
     .bdrv_aio_flush     = raw_aio_flush,
     .bdrv_discard       = raw_discard,
 
-- 
1.7.6.4

  parent reply	other threads:[~2011-10-14 16:47 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-14 16:48 [Qemu-devel] [PULL 00/24] Block patches Kevin Wolf
2011-10-14 16:48 ` [Qemu-devel] [PATCH 01/24] block: allow resizing of images residing on host devices Kevin Wolf
2011-10-14 16:48 ` [Qemu-devel] [PATCH 02/24] linux-aio: Fix laio_submit error handling Kevin Wolf
2011-10-14 16:48 ` [Qemu-devel] [PATCH 03/24] block: Keep track of devices' I/O status Kevin Wolf
2011-10-14 16:48 ` [Qemu-devel] [PATCH 04/24] virtio: Support " Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 05/24] ide: " Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 06/24] scsi: " Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 07/24] QMP: query-status: Add 'io-status' key Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 08/24] HMP: Print 'io-status' information Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 09/24] block/vvfat: Fix potential memory leaks and other memory errors Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 10/24] block/vvfat: Remove unused code Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 11/24] vvfat: Fix potential buffer overflow Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 12/24] block: directly invoke .bdrv_aio_*() in bdrv_co_io_em() Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 13/24] block: directly invoke .bdrv_* from emulation functions Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 14/24] block: split out bdrv_co_do_readv() and bdrv_co_do_writev() Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 15/24] block: switch bdrv_read()/bdrv_write() to coroutines Kevin Wolf
2011-10-24 15:12   ` Pierre Riteau
2011-10-14 16:49 ` [Qemu-devel] [PATCH 16/24] block: switch bdrv_aio_readv() " Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 17/24] block: mark blocks dirty on coroutine write completion Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 18/24] block: switch bdrv_aio_writev() to coroutines Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 19/24] linux-aio: Allow reads beyond the end of growable images Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 20/24] block: drop emulation functions that use coroutines Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 21/24] raw-posix: remove bdrv_read()/bdrv_write() Kevin Wolf
2011-10-14 16:49 ` Kevin Wolf [this message]
2011-10-14 16:49 ` [Qemu-devel] [PATCH 23/24] block: drop .bdrv_read()/.bdrv_write() emulation Kevin Wolf
2011-10-14 16:49 ` [Qemu-devel] [PATCH 24/24] block: drop bdrv_has_async_rw() Kevin Wolf
2011-10-14 17:48 ` [Qemu-devel] [PULL 00/24] Block patches Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1318610959-17971-23-git-send-email-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).