qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: aliguori@linux.vnet.ibm.com
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 21/26] block: Convert first_drv to QLIST
Date: Fri, 23 Apr 2010 17:30:53 +0200	[thread overview]
Message-ID: <1272036658-26776-22-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1272036658-26776-1-git-send-email-kwolf@redhat.com>

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

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block.c     |   22 ++++++++++++----------
 block_int.h |    2 +-
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/block.c b/block.c
index 5d087de..12cf434 100644
--- a/block.c
+++ b/block.c
@@ -58,7 +58,8 @@ static int bdrv_write_em(BlockDriverState *bs, int64_t sector_num,
 static QTAILQ_HEAD(, BlockDriverState) bdrv_states =
     QTAILQ_HEAD_INITIALIZER(bdrv_states);
 
-static BlockDriver *first_drv;
+static QLIST_HEAD(, BlockDriver) bdrv_drivers =
+    QLIST_HEAD_INITIALIZER(bdrv_drivers);
 
 /* If non-zero, use only whitelisted block drivers */
 static int use_bdrv_whitelist;
@@ -142,8 +143,7 @@ void bdrv_register(BlockDriver *bdrv)
     if (!bdrv->bdrv_aio_flush)
         bdrv->bdrv_aio_flush = bdrv_aio_flush_em;
 
-    bdrv->next = first_drv;
-    first_drv = bdrv;
+    QLIST_INSERT_HEAD(&bdrv_drivers, bdrv, list);
 }
 
 /* create a new block device (by default it is empty) */
@@ -162,9 +162,10 @@ BlockDriverState *bdrv_new(const char *device_name)
 BlockDriver *bdrv_find_format(const char *format_name)
 {
     BlockDriver *drv1;
-    for(drv1 = first_drv; drv1 != NULL; drv1 = drv1->next) {
-        if (!strcmp(drv1->format_name, format_name))
+    QLIST_FOREACH(drv1, &bdrv_drivers, list) {
+        if (!strcmp(drv1->format_name, format_name)) {
             return drv1;
+        }
     }
     return NULL;
 }
@@ -265,10 +266,11 @@ static BlockDriver *find_protocol(const char *filename)
         len = sizeof(protocol) - 1;
     memcpy(protocol, filename, len);
     protocol[len] = '\0';
-    for(drv1 = first_drv; drv1 != NULL; drv1 = drv1->next) {
+    QLIST_FOREACH(drv1, &bdrv_drivers, list) {
         if (drv1->protocol_name &&
-            !strcmp(drv1->protocol_name, protocol))
+            !strcmp(drv1->protocol_name, protocol)) {
             return drv1;
+        }
     }
     return NULL;
 }
@@ -282,7 +284,7 @@ static BlockDriver *find_hdev_driver(const char *filename)
     int score_max = 0, score;
     BlockDriver *drv = NULL, *d;
 
-    for (d = first_drv; d; d = d->next) {
+    QLIST_FOREACH(d, &bdrv_drivers, list) {
         if (d->bdrv_probe_device) {
             score = d->bdrv_probe_device(filename);
             if (score > score_max) {
@@ -317,7 +319,7 @@ static BlockDriver *find_image_format(const char *filename)
     }
 
     score_max = 0;
-    for(drv1 = first_drv; drv1 != NULL; drv1 = drv1->next) {
+    QLIST_FOREACH(drv1, &bdrv_drivers, list) {
         if (drv1->bdrv_probe) {
             score = drv1->bdrv_probe(buf, ret, filename);
             if (score > score_max) {
@@ -1157,7 +1159,7 @@ void bdrv_iterate_format(void (*it)(void *opaque, const char *name),
 {
     BlockDriver *drv;
 
-    for (drv = first_drv; drv != NULL; drv = drv->next) {
+    QLIST_FOREACH(drv, &bdrv_drivers, list) {
         it(opaque, drv->format_name);
     }
 }
diff --git a/block_int.h b/block_int.h
index 466a38c..d4067ff 100644
--- a/block_int.h
+++ b/block_int.h
@@ -126,7 +126,7 @@ struct BlockDriver {
     /* Set if newly created images are not guaranteed to contain only zeros */
     int no_zero_init;
 
-    struct BlockDriver *next;
+    QLIST_ENTRY(BlockDriver) list;
 };
 
 struct BlockDriverState {
-- 
1.6.6.1

  parent reply	other threads:[~2010-04-23 15:32 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-23 15:30 [Qemu-devel] [PULL 00/26] Block patches Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 01/26] qemu-config: qemu_read_config_file() reads the normal config file Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 02/26] qemu-config: Make qemu_config_parse more generic Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 03/26] blkdebug: Basic request passthrough Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 04/26] blkdebug: Inject errors Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 05/26] Make qemu-config available for tools Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 06/26] blkdebug: Add events and rules Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 07/26] qcow2: Trigger blkdebug events Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 08/26] qcow2: Fix creation of large images Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 09/26] Replace calls of old bdrv_open Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 10/26] block: get rid of the BDRV_O_FILE flag Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 11/26] block: split raw_getlength Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 12/26] qcow2: Return 0/-errno in write_l2_entries Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 13/26] qcow2: Fix error return code in qcow2_alloc_cluster_link_l2 Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 14/26] qcow2: Return 0/-errno in write_l1_entry Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 15/26] qcow2: Return 0/-errno in l2_allocate Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 16/26] cleanup block driver option handling in vl.c Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 17/26] block: Do not export bdrv_first Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 18/26] block: Convert bdrv_first to QTAILQ Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 19/26] Remove un-needed code Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 20/26] block.h: bdrv_create2 doesn't exist any more Kevin Wolf
2010-04-23 15:30 ` Kevin Wolf [this message]
2010-04-23 15:30 ` [Qemu-devel] [PATCH 22/26] qemu-img: Eliminate bdrv_new_open() code duplication Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 23/26] qemu-img: Fix BRDV_O_FLAGS typo Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 24/26] linux-aio: Fix typo in read() EINTR check Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 25/26] qcow2: Use QLIST_FOREACH_SAFE macro Kevin Wolf
2010-04-23 15:30 ` [Qemu-devel] [PATCH 26/26] block: Free iovec arrays allocated by multiwrite_merge() Kevin Wolf
2010-04-23 20:22   ` Ryan Harper
2010-04-25  1:42     ` Aurelien Jarno
2010-04-23 18:49 ` [Qemu-devel] Re: [PULL 00/26] 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=1272036658-26776-22-git-send-email-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=aliguori@linux.vnet.ibm.com \
    --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).