mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
libxl: cleanup remaining backend xs dirs after driver domain
When device is removed, backend domain (which may be a driver domain) is responsible for removing backend entries from xenstore. But in case of driver domain, it has no access to remove all of them - specifically the directory named after frontend-id remains. This may accumulate enough to exceed xenstore quote of the driver domain, breaking further devices. Fix this by calling libxl__xs_path_cleanup() on the backend path from libxl__device_destroy() in the toolstack domain too. Note libxl__device_destroy() is called when the driver domain already removed what it can (see device_destroy_be_watch_cb()->device_hotplug_done()). Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Acked-by: Wei Liu <wl@xen.org>
This commit is contained in:
1 parent
c7115531ea
commit
c992efd06a
1 file changed
+6
@@ -763,6 +763,12 @@ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
|
||||
* from the backend path.
|
||||
*/
|
||||
libxl__xs_path_cleanup(gc, t, be_path);
|
||||
} else if (domid == LIBXL_TOOLSTACK_DOMID && !libxl_only) {
|
||||
/*
|
||||
* Then, toolstack domain is in charge of removing the parent
|
||||
* directory if empty already.
|
||||
*/
|
||||
libxl__xs_path_cleanup(gc, t, be_path);
|
||||
}
|
||||
|
||||
rc = libxl__xs_transaction_commit(gc, &t);
|
||||
|
||||