Regression in squashfs mount option handling in v5.4

From: Jeremi Piotrowski
Date: Sat Nov 30 2019 - 13:15:01 EST


Hi,

I'm working on an embedded project which uses 'rauc' as an updater. rauc mounts
a squashfs image using

mount -t squashfs -o ro,loop,sizelimit=xxx squashfs.img /mnt

On my system mount is busybox, and busybox does not know the sizelimit
parameter, so it simply passes it on to the mount syscall. The syscall
arguments end up being:

mount("/dev/loop0", "dir", "squashfs", MS_RDONLY|MS_SILENT, "sizelimit=xxx")

Until kernel 5.4 this worked, since 5.4 this returns EINVAL and dmesg contains
the line "squashfs: Unknown parameter 'sizelimit'". I believe this has to do
with the conversion of squashfs to the new mount api.

This is an unfortunate regression, and it does not seem like this can be simply
reverted. What is the suggested course of action?

Please cc me on replies, I'm not subscribed to the list.

Thanks,
Jeremi