Re: [syzbot] [netfs?] WARNING in netfs_retry_reads

From: Hillf Danton
Date: Fri Nov 29 2024 - 18:24:04 EST


On Thu, Nov 28, 2024 at 11:27:24PM -0800, syzbot wrote:
> syzbot found the following issue on:
>
> HEAD commit: 85a2dd7d7c81 Add linux-next specific files for 20241125
> git tree: linux-next
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14e3a5c0580000

#syz test

--- x/fs/netfs/read_collect.c
+++ y/fs/netfs/read_collect.c
@@ -619,8 +619,7 @@ ssize_t netfs_wait_for_read(struct netfs

for (;;) {
trace_netfs_rreq(rreq, netfs_rreq_trace_wait_queue);
- prepare_to_wait(&rreq->waitq, &myself, TASK_UNINTERRUPTIBLE);
-
+ smp_mb();
subreq = list_first_entry_or_null(&stream->subrequests,
struct netfs_io_subrequest, rreq_link);
if (subreq &&
@@ -628,6 +627,7 @@ ssize_t netfs_wait_for_read(struct netfs
test_bit(NETFS_SREQ_MADE_PROGRESS, &subreq->flags)))
netfs_read_collection(rreq);

+ prepare_to_wait(&rreq->waitq, &myself, TASK_UNINTERRUPTIBLE);
if (!test_bit(NETFS_RREQ_IN_PROGRESS, &rreq->flags))
break;

--