[lxc-devel] [PATCH 1/4] Automatic mounts: improvements for /proc and /sys

Christian Seiler christian at iwakd.de
Thu Sep 26 19:41:00 UTC 2013


Hi Serge,

>> +		/* Read-only bind-mounting... In older kernels, doing that 
>> required
>> +		 * to do one MS_BIND mount and then MS_REMOUNT|MS_RDONLY the same
>> +		 * one. According to mount(2) manpage, MS_BIND honors MS_RDONLY 
>> from
>> +		 * kernel 2.6.26 onwards. However, this apparently does not work 
>> on
>> +		 * kernel 3.8.
>
> I'm still not sure what is going on for you with this.  Running with 
> the
> latest 3.11 userns-enabled kernel (at ppa:ubuntu-lxc/kernel), I can
> still do
>
> 	sudo mkdir /tmp/{a,b}
> 	sudo mount -t tmpfs tmpfs /tmp/a
> 	sudo mount --bind /tmp/a /tmp/b
> 	sudo mount -o remount,bind,ro /tmp/b
>
> and end up with /tmp/b roand /tmp/a rw.  This works for me in 3.2, 
> 3.8,
> and userns-enabled 3.11.

I meant with that comment that mount --bind -o ro /tmp/a /tmp/b doesn't
work directly, at least with 3.8, but you have to do two steps. This
does not appear to be in accordance with the mount(2) manpage.

>> Unfortunately, on that very same kernel, doing the
>> +		 * same trick as above doesn't seem to work either, there one 
>> needs
>> +		 * to ALSO specify MS_BIND for the remount, otherwise the entire
>> +		 * fs is remounted read-only or the mount fails because it's 
>> busy...
>
> That's actually understandable - there are two things which both have
> a readonly.vs.readwrite state - the vfsmount, and the superblock.  If
> you don't add MS_BIND, then you are requesting remount of the
> superblock.

Yes, I see what you mean, but this is definitely a change in the
behaviour of the kernel compared to previous versions. And that
also means that (see other thread) bind-mounting a rootfs onto
itself will not prevent a container from remounting the filesystem
readonly on shutdown.

Nevertheless, this should not be a problem for THIS patch, the
current version should work with any reasonable kernel you may
want to use LXC with.

-- Christian





More information about the lxc-devel mailing list