linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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 related	[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;
as well as URLs for NNTP newsgroup(s).