[libvirt] [PATCH 5/5] lxc: don't unmount subtree if it contains the source of the mount

Martin Kletzander mkletzan at redhat.com
Tue Nov 25 07:48:23 UTC 2014


On Mon, Nov 24, 2014 at 09:54:46PM +0100, Cédric Bosdonnat wrote:
>The typical case where we had a problem is with such a filesystem
>definition as created by virt-sandbox-service:
>
>    <filesystem type='bind' accessmode='passthrough'>
>      <source dir='/var/lib/libvirt/filesystems/mysshd/var'/>
>      <target dir='/var'/>
>    </filesystem>
>
>In this case, we don't want to unmount the /var subtree or we may
>loose the access to the source folder.

I probably didn't quite get this.  This is only true when host root is
the root of the container, isn't it?  And in that case it doesn't make
much sense to do this.

>---
> src/lxc/lxc_container.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
>diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
>index 12f3a41..334a1df 100644
>--- a/src/lxc/lxc_container.c
>+++ b/src/lxc/lxc_container.c
>@@ -1597,11 +1597,15 @@ static int lxcContainerMountAllFS(virDomainDefPtr vmDef,
>         if (STREQ(vmDef->fss[i]->dst, "/"))
>             continue;
>
>+        VIR_DEBUG("Mounting '%s' -> '%s'", vmDef->fss[i]->src, vmDef->fss[i]->dst);
>+
>         if (lxcContainerResolveSymlinks(vmDef->fss[i], false) < 0)
>             return -1;
>
>-        if (lxcContainerUnmountSubtree(vmDef->fss[i]->dst,
>-                                       false) < 0)
>+
>+        if (!(vmDef->fss[i]->src &&
>+              STRPREFIX(vmDef->fss[i]->src, vmDef->fss[i]->dst)) &&
>+            lxcContainerUnmountSubtree(vmDef->fss[i]->dst, false) < 0)
>             return -1;
>
>         if (lxcContainerMountFS(vmDef->fss[i], sec_mount_options) < 0)
>--
>2.1.2
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20141125/d9d58e26/attachment-0001.sig>


More information about the libvir-list mailing list