libmount v1.41 calls several unneeded fsconfig() calls to reconfigure lowerdir/upperdir when user requests only -o remount,ro. Those calls fail because overlayfs does not allow making any config changes with new mount api, besides MS_RDONLY. force mount(8) to use mount(2) to remount ro/rw to workaround this issue, by setting LIBMOUNT_FORCE_MOUNT2=always. Reported-by: André Almeida <andrealmeid@xxxxxxxxxx> Cc: Karel Zak <kzak@xxxxxxxxxx> Link: https://lore.kernel.org/linux-fsdevel/20250521-ovl_ro-v1-1-2350b1493d94@xxxxxxxxxx/ Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> --- common/overlay | 4 +++- tests/overlay/035 | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/overlay b/common/overlay index a6d37a93..5ee9f561 100644 --- a/common/overlay +++ b/common/overlay @@ -127,7 +127,9 @@ _overlay_base_scratch_mount() _overlay_scratch_mount() { if echo "$*" | grep -q remount; then - $MOUNT_PROG $SCRATCH_MNT $* + # force mount(8) to use mount(2), to workaround libmount v1.41 + # failed fsconfig() calls to reconfigure lowerdir/upperdir + LIBMOUNT_FORCE_MOUNT2=always $MOUNT_PROG $SCRATCH_MNT $* return fi diff --git a/tests/overlay/035 b/tests/overlay/035 index 0b3257c4..2a4df99a 100755 --- a/tests/overlay/035 +++ b/tests/overlay/035 @@ -42,7 +42,7 @@ mkdir -p $lowerdir1 $lowerdir2 $upperdir $workdir # Verify that overlay is mounted read-only and that it cannot be remounted rw. _overlay_scratch_mount_opts -o"lowerdir=$lowerdir2:$lowerdir1" touch $SCRATCH_MNT/foo 2>&1 | _filter_scratch -$MOUNT_PROG -o remount,rw $SCRATCH_MNT 2>&1 | _filter_ro_mount +_scratch_remount rw 2>&1 | _filter_ro_mount $UMOUNT_PROG $SCRATCH_MNT # Make workdir immutable to prevent workdir re-create on mount -- 2.34.1