xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Marek Marczykowski <marmarek@mimuw.edu.pl>
To: xen-devel@lists.xensource.com
Cc: marmarek@mimuw.edu.pl
Subject: [PATCH 1 of 6 RESENT] libxl: Remove frontend and backend devices from xenstore after destroy
Date: Sun, 05 Jun 2011 18:50:31 +0200	[thread overview]
Message-ID: <c32797243a6ba61dd294.1307292631@devel14> (raw)
In-Reply-To: <patchbomb.1307292630@devel14>

# HG changeset patch
# User Marek Marczykowski <marmarek@mimuw.edu.pl>
# Date 1307143993 -7200
# Node ID c32797243a6ba61dd2942a0307151e42fb7bf157
# Parent  37c77bacb52aa7795978b994f9d371b979b2cb07
libxl: Remove frontend and backend devices from xenstore after destroy

Cleanup frontend and backend devices from xenstore for all dev types - not only
disks. Because backend cleanup moved to libxl__device_destroy,
libxl__devices_destroy is somehow simpler.

Signed-off-by: Marek Marczykowski <marmarek@mimuw.edu.pl>

diff -r 37c77bacb52a -r c32797243a6b tools/libxl/libxl.c
--- a/tools/libxl/libxl.c	Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl.c	Sat Jun 04 01:33:13 2011 +0200
@@ -1105,8 +1105,6 @@ int libxl_device_disk_del(libxl_ctx *ctx
     device.devid            = devid;
     device.kind             = DEVICE_VBD;
     rc = libxl__device_del(&gc, &device, wait);
-    xs_rm(ctx->xsh, XBT_NULL, libxl__device_backend_path(&gc, &device));
-    xs_rm(ctx->xsh, XBT_NULL, libxl__device_frontend_path(&gc, &device));
 out_free:
     libxl__free_all(&gc);
     return rc;
diff -r 37c77bacb52a -r c32797243a6b tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c	Mon May 23 17:38:28 2011 +0100
+++ b/tools/libxl/libxl_device.c	Sat Jun 04 01:33:13 2011 +0200
@@ -272,6 +272,8 @@ retry_transaction:
     if (!force) {
         xs_watch(ctx->xsh, state_path, be_path);
         rc = 1;
+    } else {
+        xs_rm(ctx->xsh, XBT_NULL, be_path);
     }
 out:
     return rc;
@@ -311,10 +313,8 @@ int libxl__devices_destroy(libxl__gc *gc
     char *path, *be_path, *fe_path;
     unsigned int num1, num2;
     char **l1 = NULL, **l2 = NULL;
-    int i, j, n = 0, n_watches = 0;
-    flexarray_t *toremove;
+    int i, j, n_watches = 0;
 
-    toremove = flexarray_make(16, 1);
     path = libxl__sprintf(gc, "/local/domain/%d/device", domid);
     l1 = libxl__xs_directory(gc, XBT_NULL, path, &num1);
     if (!l1) {
@@ -338,7 +338,6 @@ int libxl__devices_destroy(libxl__gc *gc
             if (be_path != NULL) {
                 if (libxl__device_destroy(gc, be_path, force) > 0)
                     n_watches++;
-                flexarray_set(toremove, n++, libxl__dirname(gc, be_path));
             } else {
                 xs_rm(ctx->xsh, XBT_NULL, path);
             }
@@ -351,7 +350,6 @@ int libxl__devices_destroy(libxl__gc *gc
     if (be_path && strcmp(be_path, "")) {
         if (libxl__device_destroy(gc, be_path, force) > 0)
             n_watches++;
-        flexarray_set(toremove, n++, libxl__dirname(gc, be_path));
     }
 
     if (!force) {
@@ -371,17 +369,13 @@ int libxl__devices_destroy(libxl__gc *gc
             }
         }
     }
-    for (i = 0; i < n; i++) {
-        flexarray_get(toremove, i, (void**) &path);
-        xs_rm(ctx->xsh, XBT_NULL, path);
-    }
 out:
-    flexarray_free(toremove);
     return 0;
 }
 
 int libxl__device_del(libxl__gc *gc, libxl__device *dev, int wait)
 {
+    libxl_ctx *ctx = libxl__gc_owner(gc);
     char *backend_path;
     int rc;
 
@@ -400,6 +394,7 @@ int libxl__device_del(libxl__gc *gc, lib
         (void)wait_for_dev_destroy(gc, &tv);
     }
 
+    xs_rm(ctx->xsh, XBT_NULL, libxl__device_frontend_path(gc, dev));
     rc = 0;
 
 out:

  reply	other threads:[~2011-06-05 16:50 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-05 16:50 [PATCH 0 of 6 RESENT] A bunch of fixes for libxl Marek Marczykowski
2011-06-05 16:50 ` Marek Marczykowski [this message]
2011-06-06 10:00   ` [PATCH 1 of 6 RESENT] libxl: Remove frontend and backend devices from xenstore after destroy Ian Campbell
2011-06-27 16:29     ` Ian Jackson
2011-06-05 16:50 ` [PATCH 2 of 6 RESENT] libxl: Accept disk name in libxl_devid_to_device_disk Marek Marczykowski
2011-06-06 11:24   ` Ian Campbell
2011-06-06 11:31     ` Ian Campbell
2011-06-27 16:28     ` [PATCH 2 of 6 RESENT] libxl: Accept disk name in libxl_devid_to_device_disk [and 1 more messages] Ian Jackson
2011-06-05 16:50 ` [PATCH 3 of 6 RESENT] libxl: Allocate memory for strings in libxl_device_disk Marek Marczykowski
2011-06-06 11:24   ` Ian Campbell
2011-06-27 16:25   ` Ian Jackson
2011-06-05 16:50 ` [PATCH 4 of 6 RESENT] xl: Use macros for param parsing in network-attach, to prevent use explicit sizeof("param") Marek Marczykowski
2011-06-07 12:02   ` Stefano Stabellini
2011-06-05 16:50 ` [PATCH 5 of 6 RESENT] xen.lowlevel.xl: Return None on empty domain name Marek Marczykowski
2011-06-27 16:34   ` Ian Jackson
     [not found]   ` <19976.45675.438028.965156@mariner.uk.xensource.com>
2011-06-28 21:37     ` Backport libxl bugfixes to 4.1 (was: Re: [PATCH 5 of 6 RESENT] xen.lowlevel.xl: Return None on empty domain name) Marek Marczykowski
2011-06-28 21:57       ` Keir Fraser
2011-06-30 16:47       ` Ian Jackson
2011-08-25 11:05         ` Ian Jackson
2011-08-25 11:12           ` Backport libxl bugfixes to 4.1 Marek Marczykowski
2011-08-25 17:13             ` [PATCH 0 of 5] A bunch of fixes for libxl Marek Marczykowski
2011-08-25 17:13               ` [PATCH 1 of 5] libxl: Remove frontend and backend devices from xenstore after destroy Marek Marczykowski
2011-08-25 17:13               ` [PATCH 2 of 5] libxl: Accept disk name in libxl_devid_to_device_disk Marek Marczykowski
2011-08-25 17:13               ` [PATCH 3 of 5] libxl: Allocate memory for strings in libxl_device_disk Marek Marczykowski
2011-08-25 17:13               ` [PATCH 4 of 5] xen.lowlevel.xl: Return None on empty domain name Marek Marczykowski
2011-08-25 17:13               ` [PATCH 5 of 5] libxl: Do not SEGV when no 'removable' disk parameter in xenstore Marek Marczykowski
2011-08-30 17:19               ` [PATCH 0 of 5] A bunch of fixes for libxl Ian Jackson
2011-06-05 16:50 ` [PATCH 6 of 6 RESENT] libxl: Do not SEGV when no 'removable' disk parameter in xenstore Marek Marczykowski
2011-06-07 11:57   ` Stefano Stabellini
2011-06-07 12:00     ` Marek Marczykowski
2011-06-08 10:41       ` [PATCH] " Marek Marczykowski
2011-06-08 10:50         ` Stefano Stabellini
2011-06-27 16:37           ` [PATCH] libxl: Do not SEGV when no 'removable' disk parameter in xenstore [and 1 more messages] Ian Jackson
2011-06-08 10:42       ` [PATCH RESENTv2] libxl: Do not SEGV when no 'removable' disk parameter in xenstore Marek Marczykowski

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=c32797243a6ba61dd294.1307292631@devel14 \
    --to=marmarek@mimuw.edu.pl \
    --cc=xen-devel@lists.xensource.com \
    /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).