Quoting Abin Shahab (asha...@altiscale.com): > Yes. It's documented in the mount man page. > Thanks for looking at the patch. > On Nov 18, 2014 1:04 PM, "Serge Hallyn" <serge.hal...@ubuntu.com> wrote: > > > Quoting Abin Shahab (asha...@altiscale.com): > > > Bind mounts do not honor filesystem mount options. This change will > > remount filesystems that are bind mounted if there are changes to > > filesystem mount options, specifically if the mount is readonly. > > > > hi, > > > > Just to make sure I understand what you're saying, > > > > 'mount --bind -o ro /a /b' (when done through mount(2)) will not > > actually make /b readonly, so we need to do a remount in that case > > to get the -o ro to take effect at the vfsmount instead of the sb. > > Is that right? > > > > > Signed-off-by: Abin Shahab <asha...@altiscale.com>
Thanks, great catch. Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com> Stéphane, this one is pretty important, please do get this into stable as well. > > > --- > > > src/lxc/conf.c | 8 +++++--- > > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > > > diff --git a/src/lxc/conf.c b/src/lxc/conf.c > > > index 5938c3e..a3779de 100644 > > > --- a/src/lxc/conf.c > > > +++ b/src/lxc/conf.c > > > @@ -1921,10 +1921,12 @@ static int mount_entry(const char *fsname, const > > char *target, > > > if ((mountflags & MS_REMOUNT) || (mountflags & MS_BIND)) { > > > DEBUG("remounting %s on %s to respect bind or remount > > options", > > > fsname ? fsname : "(none)", target ? target : > > "(none)"); > > > - > > > + unsigned long rqd_flags = 0; > > > + if (mountflags & MS_RDONLY) > > > + rqd_flags |= MS_RDONLY; > > > #ifdef HAVE_STATVFS > > > if (statvfs(fsname, &sb) == 0) { > > > - unsigned long required_flags = 0; > > > + unsigned long required_flags = rqd_flags; > > > if (sb.f_flag & MS_NOSUID) > > > required_flags |= MS_NOSUID; > > > if (sb.f_flag & MS_NODEV) > > > @@ -1940,7 +1942,7 @@ static int mount_entry(const char *fsname, const > > char *target, > > > * mountflags, then skip the remount > > > */ > > > if (!(mountflags & MS_REMOUNT)) { > > > - if (!(required_flags & ~mountflags)) { > > > + if (!(required_flags & ~mountflags) && > > rqd_flags == 0) { > > > DEBUG("mountflags already was %lu, > > skipping remount", > > > mountflags); > > > goto skipremount; > > > -- > > > 2.1.0 > > > > > > _______________________________________________ > > > lxc-devel mailing list > > > lxc-devel@lists.linuxcontainers.org > > > http://lists.linuxcontainers.org/listinfo/lxc-devel > > _______________________________________________ > > lxc-devel mailing list > > lxc-devel@lists.linuxcontainers.org > > http://lists.linuxcontainers.org/listinfo/lxc-devel > > > _______________________________________________ > lxc-devel mailing list > lxc-devel@lists.linuxcontainers.org > http://lists.linuxcontainers.org/listinfo/lxc-devel _______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel