[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxl: don't launch more than one tapdisk process for each disk
commit ec398660e89ca18bb8d061d5047d682bd383778a Author: Roger Pau Monne <roger.pau@xxxxxxxxxx> AuthorDate: Tue Mar 5 17:06:29 2013 +0000 Commit: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CommitDate: Wed Mar 13 14:40:23 2013 +0000 libxl: don't launch more than one tapdisk process for each disk When adding a disk don't launch multiple tapdisk instances for the same disk, if transaction fails in device_disk_add reuse the same tapdisk for further tries instead of creating a new instance each time a transaction fails. Reported-by: Darren Shepherd <darren.s.shepherd@xxxxxxxxx> Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxx> Tested-by: Darren Shepherd <darren.s.shepherd@xxxxxxxxx> --- tools/libxl/libxl.c | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 73e0dc3..345d88b 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -2032,7 +2032,7 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid, STATE_AO_GC(aodev->ao); flexarray_t *front = NULL; flexarray_t *back = NULL; - char *dev, *script; + char *dev = NULL, *script; libxl__device *device; int rc; libxl_ctx *ctx = gc->owner; @@ -2095,12 +2095,15 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid, break; case LIBXL_DISK_BACKEND_TAP: - dev = libxl__blktap_devpath(gc, disk->pdev_path, disk->format); - if (!dev) { - LOG(ERROR, "failed to get blktap devpath for %p\n", - disk->pdev_path); - rc = ERROR_FAIL; - goto out; + if (dev == NULL) { + dev = libxl__blktap_devpath(gc, disk->pdev_path, + disk->format); + if (!dev) { + LOG(ERROR, "failed to get blktap devpath for %p\n", + disk->pdev_path); + rc = ERROR_FAIL; + goto out; + } } flexarray_append(back, "tapdisk-params"); flexarray_append(back, libxl__sprintf(gc, "%s:%s", -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |