* Regression in squashfs mount option handling in v5.4
@ 2019-11-30 18:15 Jeremi Piotrowski
2019-11-30 18:56 ` Randy Dunlap
0 siblings, 1 reply; 4+ messages in thread
From: Jeremi Piotrowski @ 2019-11-30 18:15 UTC (permalink / raw)
To: linux-kernel
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
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: Regression in squashfs mount option handling in v5.4 2019-11-30 18:15 Regression in squashfs mount option handling in v5.4 Jeremi Piotrowski @ 2019-11-30 18:56 ` Randy Dunlap 2019-12-10 18:50 ` Jeremi Piotrowski 0 siblings, 1 reply; 4+ messages in thread From: Randy Dunlap @ 2019-11-30 18:56 UTC (permalink / raw) To: Jeremi Piotrowski, linux-kernel, Linux FS Devel, Al Viro, David Howells, Linus Torvalds, Phillip Lougher [adding Cc-s] On 11/30/19 10:15 AM, Jeremi Piotrowski wrote: > 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 > -- ~Randy Reported-by: Randy Dunlap <rdunlap@infradead.org> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Regression in squashfs mount option handling in v5.4 2019-11-30 18:56 ` Randy Dunlap @ 2019-12-10 18:50 ` Jeremi Piotrowski 2019-12-10 22:10 ` Laura Abbott 0 siblings, 1 reply; 4+ messages in thread From: Jeremi Piotrowski @ 2019-12-10 18:50 UTC (permalink / raw) To: linux-kernel Cc: Randy Dunlap, Linux FS Devel, Al Viro, David Howells, Linus Torvalds, Phillip Lougher On Sat, Nov 30, 2019 at 10:56:47AM -0800, Randy Dunlap wrote: > [adding Cc-s] > > On 11/30/19 10:15 AM, Jeremi Piotrowski wrote: > > 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 > > > > > -- > ~Randy > Reported-by: Randy Dunlap <rdunlap@infradead.org> Ping. This is preventing me from updating the kernel on my systems. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Regression in squashfs mount option handling in v5.4 2019-12-10 18:50 ` Jeremi Piotrowski @ 2019-12-10 22:10 ` Laura Abbott 0 siblings, 0 replies; 4+ messages in thread From: Laura Abbott @ 2019-12-10 22:10 UTC (permalink / raw) To: Jeremi Piotrowski, linux-kernel, Al Viro, David Howells Cc: Randy Dunlap, Linux FS Devel, Linus Torvalds, Phillip Lougher On 12/10/19 1:50 PM, Jeremi Piotrowski wrote: > On Sat, Nov 30, 2019 at 10:56:47AM -0800, Randy Dunlap wrote: >> [adding Cc-s] >> >> On 11/30/19 10:15 AM, Jeremi Piotrowski wrote: >>> 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 >>> >> >> >> -- >> ~Randy >> Reported-by: Randy Dunlap <rdunlap@infradead.org> > > Ping. This is preventing me from updating the kernel on my systems. > Fedora is hitting a similar issue https://bugzilla.redhat.com/show_bug.cgi?id=1781863 Dec 10 10:04:06 kernel: squashfs: version 4.0 (2009/01/31) Phillip Lougher Dec 10 10:04:06 kernel: squashfs: Unknown parameter 'errors' I don't think squashfs ever actually supported the errors parameter but it was just silently ignored. It turns out you could can pass whatever nonsense you want for parameters so I don't think we can reject parameters in the generic case diff --git a/fs/fs_context.c b/fs/fs_context.c index 138b5b4d621d..7ec20b1f8a53 100644 --- a/fs/fs_context.c +++ b/fs/fs_context.c @@ -160,8 +160,7 @@ int vfs_parse_fs_param(struct fs_context *fc, struct fs_parameter *param) return 0; } - return invalf(fc, "%s: Unknown parameter '%s'", - fc->fs_type->name, param->key); + return 0; } EXPORT_SYMBOL(vfs_parse_fs_param); ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-12-10 22:10 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-11-30 18:15 Regression in squashfs mount option handling in v5.4 Jeremi Piotrowski 2019-11-30 18:56 ` Randy Dunlap 2019-12-10 18:50 ` Jeremi Piotrowski 2019-12-10 22:10 ` Laura Abbott
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®