diff options
| author | David Howells <dhowells@redhat.com> | 2026-03-25 08:20:17 +0000 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-03-26 15:18:45 +0100 |
| commit | 0e764b9d46071668969410ec5429be0e2f38c6d3 (patch) | |
| tree | cbad730b211b06aeba675c7e967b45f6465ea68b /include/linux/netfs.h | |
| parent | f621324dfb3d6719cc9ffe65e8ec6051664ca059 (diff) | |
| download | lwn-0e764b9d46071668969410ec5429be0e2f38c6d3.tar.gz lwn-0e764b9d46071668969410ec5429be0e2f38c6d3.zip | |
netfs: Fix the handling of stream->front by removing it
The netfs_io_stream::front member is meant to point to the subrequest
currently being collected on a stream, but it isn't actually used this way
by direct write (which mostly ignores it). However, there's a tracepoint
which looks at it. Further, stream->front is actually redundant with
stream->subrequests.next.
Fix the potential problem in the direct code by just removing the member
and using stream->subrequests.next instead, thereby also simplifying the
code.
Fixes: a0b4c7a49137 ("netfs: Fix unbuffered/DIO writes to dispatch subrequests in strict sequence")
Reported-by: Paulo Alcantara <pc@manguebit.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://patch.msgid.link/4158599.1774426817@warthog.procyon.org.uk
Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'include/linux/netfs.h')
| -rw-r--r-- | include/linux/netfs.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/netfs.h b/include/linux/netfs.h index 72ee7d210a74..ba17ac5bf356 100644 --- a/include/linux/netfs.h +++ b/include/linux/netfs.h @@ -140,7 +140,6 @@ struct netfs_io_stream { void (*issue_write)(struct netfs_io_subrequest *subreq); /* Collection tracking */ struct list_head subrequests; /* Contributory I/O operations */ - struct netfs_io_subrequest *front; /* Op being collected */ unsigned long long collected_to; /* Position we've collected results to */ size_t transferred; /* The amount transferred from this stream */ unsigned short error; /* Aggregate error for the stream */ |
