[PATCH 7/7] Do not prematurely close loop devices in LXC controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Daniel P. Berrange" <berrange@xxxxxxxxxx>

The LXC controller is closing loop devices as soon as the
container has started. This is fine if the loop device
was setup as a mounted filesystem, but if we're just passing
through the loop device as a disk, nothing else is keeping
it open. Thus we must keep the loop device FDs open for as
long the libvirt_lxc process is running.

Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
---
 src/lxc/lxc_controller.c | 20 +++-----------------
 1 file changed, 3 insertions(+), 17 deletions(-)

diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index c433fb1..9545df3 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -199,22 +199,12 @@ error:
 }
 
 
-static int virLXCControllerCloseLoopDevices(virLXCControllerPtr ctrl,
-                                            bool force)
+static int virLXCControllerCloseLoopDevices(virLXCControllerPtr ctrl)
 {
     size_t i;
 
-    for (i = 0 ; i < ctrl->nloopDevs ; i++) {
-        if (force) {
-            VIR_FORCE_CLOSE(ctrl->loopDevFds[i]);
-        } else {
-            if (VIR_CLOSE(ctrl->loopDevFds[i]) < 0) {
-                virReportSystemError(errno, "%s",
-                                     _("Unable to close loop device"));
-                return -1;
-            }
-        }
-    }
+    for (i = 0 ; i < ctrl->nloopDevs ; i++)
+        VIR_FORCE_CLOSE(ctrl->loopDevFds[i]);
 
     return 0;
 }
@@ -1616,10 +1606,6 @@ virLXCControllerRun(virLXCControllerPtr ctrl)
 
     /* Now the container is fully setup... */
 
-    /* ...we can close the loop devices... */
-    if (virLXCControllerCloseLoopDevices(ctrl, false) < 0)
-        goto cleanup;
-
     /* ...and reduce our privileges */
     if (lxcControllerClearCapabilities() < 0)
         goto cleanup;
-- 
1.7.11.7

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]