From: Li Feng Date: Mon, 17 Jul 2017 09:09:16 +0000 (+0800) Subject: Fix issue #1702, do remount with the MS_REMOUNT flag when mounts with MS_RDONLY X-Git-Tag: lxc-2.1.0~47^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a693043fb54b2433e0936a2f69f3179e7591613;p=thirdparty%2Flxc.git Fix issue #1702, do remount with the MS_REMOUNT flag when mounts with MS_RDONLY Signed-off-by: Li Feng --- diff --git a/src/lxc/bdev/lxcdir.c b/src/lxc/bdev/lxcdir.c index 652d7e08f..0778df1cc 100644 --- a/src/lxc/bdev/lxcdir.c +++ b/src/lxc/bdev/lxcdir.c @@ -151,6 +151,12 @@ int dir_mount(struct bdev *bdev) src = lxc_storage_get_path(bdev->src, bdev->type); ret = mount(src, bdev->dest, "bind", MS_BIND | MS_REC | mntflags, mntdata); + if ((0 == ret) && (mntflags & MS_RDONLY)) { + DEBUG("remounting %s on %s with readonly options", + src ? src : "(none)", bdev->dest ? bdev->dest : "(none)"); + ret = mount(src, bdev->dest, "bind", MS_BIND | MS_REC | mntflags | MS_REMOUNT, mntdata); + } + free(mntdata); return ret; }