On Tue, Jun 03, 2025 at 12:07:40PM +0200, Amir Goldstein wrote: > libmount >= v1.39 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. > > We workaround this problem with --options-mode ignore. > > Reported-by: André Almeida <andrealmeid@xxxxxxxxxx> > Suggested-by: Karel Zak <kzak@xxxxxxxxxx> > Link: https://lore.kernel.org/linux-fsdevel/20250521-ovl_ro-v1-1-2350b1493d94@xxxxxxxxxx/ > Link: https://lore.kernel.org/fstests/CAJfpegtJ3SDKmC80B4AfWiC3JmtWdW2+78fRZVtsuhe-wSRPvg@xxxxxxxxxxxxxx/ > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > --- > > Changes since v1 [1]: > - Change workaround from LIBMOUNT_FORCE_MOUNT2 to --options-mode=ignore > > [1] https://lore.kernel.org/fstests/20250526143500.1520660-1-amir73il@xxxxxxxxx/ I'm not sure if I understand clearly. Does overlay list are fixing this issue on kernel side, then providing a workaround to fstests to avoid the issue be triggered too? Thanks, Zorro > > common/overlay | 5 ++++- > tests/overlay/035 | 2 +- > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/common/overlay b/common/overlay > index 01b6622f..0fad6e70 100644 > --- a/common/overlay > +++ b/common/overlay > @@ -127,7 +127,10 @@ _overlay_base_scratch_mount() > _overlay_scratch_mount() > { > if echo "$*" | grep -q remount; then > - $MOUNT_PROG $SCRATCH_MNT $* > + # By default, libmount merges remount options with old mount options. > + # overlayfs does not support re-configuring the same mount options. > + # We workaround this problem with --options-mode ignore. > + $MOUNT_PROG $SCRATCH_MNT --options-mode ignore $* > 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 >