Lizhi Xu <lizhi.xu@xxxxxxxxxxxxx> on Mon, 2025/04/28 22:36: > Some file systems do not support read_iter/write_iter, such as selinuxfs > in this issue. > So before calling them, first confirm that the interface is supported and > then call it. > > It is releavant in that vfs_iter_read/write have the check, and removal > of their used caused szybot to be able to hit this issue. > > Fixes: f2fed441c69b ("loop: stop using vfs_iter__{read,write} for buffered > I/O") Reported-by: syzbot+6af973a3b8dfd2faefdc@xxxxxxxxxxxxxxxxxxxxxxxxx > Closes: https://syzkaller.appspot.com/bug?extid=6af973a3b8dfd2faefdc > Signed-off-by: Lizhi Xu <lizhi.xu@xxxxxxxxxxxxx> > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > --- > V1 -> V2: move check to loop_configure and loop_change_fd > V2 -> V3: using helper for this check > V3 -> V4: remove input parameters change and mode > V4 -> V5: remove braces around !file->f_op->write_iter This introduced a regression for Arch Linux, breaking boot media generated with archiso [0]. More specifically it's this call of losetup [1]. There's a squashfs inside iso9660. Mounting the iso9660 filesystem works fine, but losetup complains when setting up: $ losetup --find --show --read-only -- /run/archiso/bootmnt/arch/x86_64/airootfs.sfs losetup: /run/archiso/bootmnt/arch/x86_64/airootfs.sfs: failed to set up loop device: Invalid argument This has been bisected to commit d278164832618bf2775c6a89e6434e2633de1eed in mainline (and 9bd3feb324fce2e93e09d0a5b00887e81d337a8c for linux-6.14.y, 184b147b9f7f07577567a80fcc9314f2bd0b0b00 for linux-6.12.y). Thanks to Christian Heusel for his work on this. As the call tries to setup in read-only mode the check for (file->f_op->read_iter) fails here, returning the -EINVAL we see. Reported-by: Christian Hesse <mail@xxxxxxxx> Bisected-by: Christian Heusel <christian@xxxxxxxxx> [0] https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso [1] https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/-/blob/master/hooks/archiso?ref_type=heads#L88 -- Mit freundlichen Gruessen Christian Hesse
Attachment:
pgpUrelJyJUKm.pgp
Description: OpenPGP digital signature