diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-12-17 06:27:57 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-12-17 06:27:57 +0000 |
commit | 06d2e6455f6333c7049f72d41f8c89a1a9884e51 (patch) | |
tree | 982d287982defca7bb698a97c216eb059a4a6a60 /tools/blktap2 | |
parent | 57ea955dd313ed5a93c5092dc4a9b22dfcb01949 (diff) | |
download | xen-06d2e6455f6333c7049f72d41f8c89a1a9884e51.tar.gz xen-06d2e6455f6333c7049f72d41f8c89a1a9884e51.tar.bz2 xen-06d2e6455f6333c7049f72d41f8c89a1a9884e51.zip |
Multiple tapdisk2 processes may use the same parent disk images (later used to
detect sharable memory pages). This patch establishes unique id for each disk
image opened by tapdisk2, and stores it in shared memory region, thus making it
available to the remaining tapdisk2s.
Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
Diffstat (limited to 'tools/blktap2')
-rw-r--r-- | tools/blktap2/drivers/tapdisk-image.c | 11 | ||||
-rw-r--r-- | tools/blktap2/drivers/tapdisk-image.h | 1 |
2 files changed, 8 insertions, 4 deletions
diff --git a/tools/blktap2/drivers/tapdisk-image.c b/tools/blktap2/drivers/tapdisk-image.c index 6da7f48bd8..400c467583 100644 --- a/tools/blktap2/drivers/tapdisk-image.c +++ b/tools/blktap2/drivers/tapdisk-image.c @@ -28,6 +28,7 @@ #include <errno.h> #include <unistd.h> #include <stdlib.h> +#include <memshr.h> #include "tapdisk-image.h" #include "tapdisk-driver.h" @@ -52,10 +53,11 @@ tapdisk_image_allocate(char *file, int type, int storage, return NULL; } - image->type = type; - image->flags = flags; - image->storage = storage; - image->private = private; + image->type = type; + image->flags = flags; + image->storage = storage; + image->private = private; + image->memshr_id = memshr_vbd_image_get(file); INIT_LIST_HEAD(&image->next); return image; @@ -69,6 +71,7 @@ tapdisk_image_free(td_image_t *image) list_del(&image->next); + memshr_vbd_image_put(image->memshr_id); free(image->name); tapdisk_driver_free(image->driver); free(image); diff --git a/tools/blktap2/drivers/tapdisk-image.h b/tools/blktap2/drivers/tapdisk-image.h index 8779dff8b7..33b1b851c3 100644 --- a/tools/blktap2/drivers/tapdisk-image.h +++ b/tools/blktap2/drivers/tapdisk-image.h @@ -34,6 +34,7 @@ struct td_image_handle { int type; char *name; + uint16_t memshr_id; td_flag_t flags; int storage; |