Re: [syzbot] [overlayfs?] possible deadlock in seq_read_iter (2)

From: Al Viro
Date: Sun Jan 28 2024 - 16:43:49 EST


On Sat, Jan 27, 2024 at 07:46:10PM +0800, Hillf Danton wrote:
> On Tue, 19 Dec 2023 11:43:27 -0800
> > syzbot has found a reproducer for the following issue on:
> >
> > HEAD commit: 2cf4f94d8e86 Merge tag 'scsi-fixes' of git://git.kernel.or..
> > git tree: upstream
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=154aa8d6e80000
>
> #syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2cf4f94d8e86
>
> --- x/fs/namei.c
> +++ y/fs/namei.c
> @@ -3533,6 +3533,8 @@ static const char *open_last_lookups(str
>
> if (open_flag & (O_CREAT | O_TRUNC | O_WRONLY | O_RDWR)) {
> got_write = !mnt_want_write(nd->path.mnt);
> + if (!got_write && (open_flag & O_CREAT))
> + return ERR_PTR(-EISDIR);

NAK.

Please, RTFComment just below your addition. Besides, EISDIR is
obviously bogus in a lot of cases, starting with attempting to
create a new file on a read-only filesystem. Surely
echo bugger > /mnt/cdrom/no_such_file_there
should *not* fail with "no_such_file_there: Is a directory"?