diff options
author | Luca Boccassi <luca.boccassi@microsoft.com> | 2022-03-25 18:40:32 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-03-26 09:33:28 +0000 |
commit | a8e7dca69054798b1c9843a0de889cef3e261c4f (patch) | |
tree | 9a78f13ef3d6712c31cef20ff37bf72f1e741ac2 /meta/recipes-core | |
parent | 56c7962a6c31acfe0e118f713954aeafd7e2d9c0 (diff) | |
download | openembedded-core-a8e7dca69054798b1c9843a0de889cef3e261c4f.tar.gz |
mount-copybind: add MOUNT_COPYBIND_AVOID_OVERLAYFS env var to skip OverlayFS
In some cases we don't want to even attempt to set up OverlayFS, for
example because SELinux in enforcing mode would kill the process
attempting to use the mount. See:
https://lore.kernel.org/all/CA+FmFJBDwt52Z-dVGfuUcnRMiMtGPhK4cCQJ=J_fg0r3x-b6ng@mail.gmail.com/T/#mef98aa406324096d1889d3d467251f30456f403c
If MOUNT_COPYBIND_AVOID_OVERLAYFS=1 is set, skip directly to copy and
bind mount.
Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'meta/recipes-core')
-rwxr-xr-x | meta/recipes-core/volatile-binds/files/mount-copybind | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/meta/recipes-core/volatile-binds/files/mount-copybind b/meta/recipes-core/volatile-binds/files/mount-copybind index 8bbb406b3a..ddc4357615 100755 --- a/meta/recipes-core/volatile-binds/files/mount-copybind +++ b/meta/recipes-core/volatile-binds/files/mount-copybind @@ -2,6 +2,9 @@ # # Perform a bind mount, copying existing files as we do so to ensure the # overlaid path has the necessary content. +# If the target is a directory and overlayfs is available (and the environment +# variable MOUNT_COPYBIND_AVOID_OVERLAYFS=1 is not set), then an overlay mount +# will be attempted first. if [ $# -lt 2 ]; then echo >&2 "Usage: $0 spec mountpoint [OPTIONS]" @@ -51,7 +54,7 @@ if [ -d "$mountpoint" ]; then mountcontext=",rootcontext=$(matchpathcon -n "$mountpoint")" fi fi - if ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir""$mountcontext" "$mountpoint" > /dev/null 2>&1; then + if [ "$MOUNT_COPYBIND_AVOID_OVERLAYFS" = 1 ] || ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir""$mountcontext" "$mountpoint" > /dev/null 2>&1; then if [ "$specdir_existed" != "yes" ]; then cp -aPR "$mountpoint"/. "$spec/" |