[lxc-devel] [PATCH] Remounts bind mounts if read-only flag is provided
Abin Shahab
ashahab at altiscale.com
Tue Nov 18 21:10:09 UTC 2014
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.hallyn at ubuntu.com> wrote:
> Quoting Abin Shahab (ashahab at 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 <ashahab at altiscale.com>
> > ---
> > 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 at lists.linuxcontainers.org
> > http://lists.linuxcontainers.org/listinfo/lxc-devel
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20141118/f246dd45/attachment.html>
More information about the lxc-devel
mailing list