aboutsummaryrefslogtreecommitdiffstats
path: root/tools/blktap2
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2011-09-28 16:42:11 +0100
committerIan Campbell <ian.campbell@citrix.com>2011-09-28 16:42:11 +0100
commit2c76a4f11bbe8a38c685ae79f4bd384284f47db9 (patch)
treef6cdfd0dce74af9966b0ba94d9266bbb6cd2e62f /tools/blktap2
parent6dac205d0453e0b92e6d8b736bd4805da06e3123 (diff)
downloadxen-2c76a4f11bbe8a38c685ae79f4bd384284f47db9.tar.gz
xen-2c76a4f11bbe8a38c685ae79f4bd384284f47db9.tar.bz2
xen-2c76a4f11bbe8a38c685ae79f4bd384284f47db9.zip
libxl: attempt to cleanup tapdisk processes on disk backend destroy.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/blktap2')
-rw-r--r--tools/blktap2/control/tap-ctl-list.c12
-rw-r--r--tools/blktap2/control/tap-ctl.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/tools/blktap2/control/tap-ctl-list.c b/tools/blktap2/control/tap-ctl-list.c
index 1497270874..c91f6f48d3 100644
--- a/tools/blktap2/control/tap-ctl-list.c
+++ b/tools/blktap2/control/tap-ctl-list.c
@@ -506,17 +506,15 @@ out:
}
int
-tap_ctl_find_minor(const char *type, const char *path)
+tap_ctl_find(const char *type, const char *path, tap_list_t *tap)
{
tap_list_t **list, **_entry;
- int minor, err;
+ int ret = -ENOENT, err;
err = tap_ctl_list(&list);
if (err)
return err;
- minor = -1;
-
for (_entry = list; *_entry != NULL; ++_entry) {
tap_list_t *entry = *_entry;
@@ -526,11 +524,13 @@ tap_ctl_find_minor(const char *type, const char *path)
if (path && (!entry->path || strcmp(entry->path, path)))
continue;
- minor = entry->minor;
+ *tap = *entry;
+ tap->type = tap->path = NULL;
+ ret = 0;
break;
}
tap_ctl_free_list(list);
- return minor >= 0 ? minor : -ENOENT;
+ return ret;
}
diff --git a/tools/blktap2/control/tap-ctl.h b/tools/blktap2/control/tap-ctl.h
index d951e774cb..de0bc29a48 100644
--- a/tools/blktap2/control/tap-ctl.h
+++ b/tools/blktap2/control/tap-ctl.h
@@ -76,7 +76,7 @@ int tap_ctl_get_driver_id(const char *handle);
int tap_ctl_list(tap_list_t ***list);
void tap_ctl_free_list(tap_list_t **list);
-int tap_ctl_find_minor(const char *type, const char *path);
+int tap_ctl_find(const char *type, const char *path, tap_list_t *tap);
int tap_ctl_allocate(int *minor, char **devname);
int tap_ctl_free(const int minor);