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

[Xen-changelog] [xen-unstable] [TAPDISK] Use incremental cookies and fix blktapctrl::test_path parameter typo.



# HG changeset patch
# User Jake Wires <jwires@xxxxxxxxxxxxx>
# Date 1177367873 25200
# Node ID f033cc5cc0d5f14ee59a5309224aea7565fa8e87
# Parent  6139337e26903d18edc1ff9ce4df1f1b0cfa76f2
[TAPDISK] Use incremental cookies and fix blktapctrl::test_path parameter typo.
Signed-off-by: Jake Wires <jwires@xxxxxxxxxxxxx>
---
 tools/blktap/drivers/blktapctrl.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff -r 6139337e2690 -r f033cc5cc0d5 tools/blktap/drivers/blktapctrl.c
--- a/tools/blktap/drivers/blktapctrl.c Mon Apr 23 16:37:03 2007 +0100
+++ b/tools/blktap/drivers/blktapctrl.c Mon Apr 23 15:37:53 2007 -0700
@@ -177,14 +177,14 @@ static int get_tapdisk_pid(blkif_t *blki
  *   return 0 on success, -1 on error.
  */
 
-static int test_path(char *path, char **dev, int *type, blkif_t *blkif)
+static int test_path(char *path, char **dev, int *type, blkif_t **blkif)
 {
        char *ptr, handle[10];
        int i, size, found = 0;
 
        size = sizeof(dtypes)/sizeof(disk_info_t *);
        *type = MAX_DISK_TYPES + 1;
-        blkif = NULL;
+        *blkif = NULL;
 
        if ( (ptr = strstr(path, ":"))!=NULL) {
                memcpy(handle, path, (ptr - path));
@@ -207,9 +207,9 @@ static int test_path(char *path, char **
                                 /* Check whether tapdisk process 
                                    already exists */
                                 if (active_disks[dtypes[i]->idnum] == NULL) 
-                                        blkif = NULL;
+                                        *blkif = NULL;
                                 else 
-                                        blkif = active_disks[dtypes[i]
+                                        *blkif = active_disks[dtypes[i]
                                                              ->idnum]->blkif;
                         }
                         return 0;
@@ -478,19 +478,20 @@ int blktapctrl_new_blkif(blkif_t *blkif)
        char *rdctldev, *wrctldev, *cmd, *ptr;
        image_t *image;
        blkif_t *exist = NULL;
+       static uint16_t next_cookie = 0;
 
        DPRINTF("Received a poll for a new vbd\n");
        if ( ((blk=blkif->info) != NULL) && (blk->params != NULL) ) {
                if (get_new_dev(&major, &minor, blkif)<0)
                        return -1;
 
-               if (test_path(blk->params, &ptr, &type, exist) != 0) {
+               if (test_path(blk->params, &ptr, &type, &exist) != 0) {
                         DPRINTF("Error in blktap device string(%s).\n",
                                 blk->params);
                         return -1;
                 }
                blkif->drivertype = type;
-               blkif->cookie = lrand48() % MAX_RAND_VAL;
+               blkif->cookie = next_cookie++;
 
                if (!exist) {
                        DPRINTF("Process does not exist:\n");

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.