[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.1-testing] Cleanup xenstore after console device teardown
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1200395954 0 # Node ID 0918b4bbffbb5235b6f6c8860b38b928da3595d2 # Parent afd468fb5730d7760c68cb6eb4cadf0e2cf2530e Cleanup xenstore after console device teardown After the changes in 13616:b111908dd70b, DevController was leaking xenstore entries every time we took down a console device, as there was no equivalent to 'xenstore-rm -t' used in the hotplug scripts for "real" devices. Implement the moral equivalent whenever removal is forced. Signed-off-by: John Levon <john.levon@xxxxxxx> --- tools/python/xen/xend/server/DevController.py | 22 +++++++++++++++++----- 1 files changed, 17 insertions(+), 5 deletions(-) diff -r afd468fb5730 -r 0918b4bbffbb tools/python/xen/xend/server/DevController.py --- a/tools/python/xen/xend/server/DevController.py Tue Jan 15 11:16:18 2008 +0000 +++ b/tools/python/xen/xend/server/DevController.py Tue Jan 15 11:19:14 2008 +0000 @@ -231,11 +231,23 @@ class DevController: self.writeBackend(dev, 'state', str(xenbusState['Closing'])) if force: - frontpath = self.frontendPath(dev) - backpath = xstransact.Read(frontpath, "backend") - if backpath: - xstransact.Remove(backpath) - xstransact.Remove(frontpath) + try: + frontpath = self.frontendPath(dev) + while True: + t = xstransact() + backpath = t.read("%s/backend" % frontpath) + if backpath: + t.remove(backpath) + # tidy up empty directories + while not t.list(backpath): + t.remove(backpath) + backpath = os.path.dirname(backpath) + t.remove(frontpath) + if t.commit(): + break + except: + t.abort() + raise self.vm._removeVm("device/%s/%d" % (self.deviceClass, dev)) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |