From: David Howells <dhowells@redhat.com>
To: Max Kellermann <max.kellermann@ionos.com>
Cc: dhowells@redhat.com, Christian Brauner <christian@brauner.io>,
Viacheslav Dubeyko <slava@dubeyko.com>,
Alex Markuze <amarkuze@redhat.com>,
Steve French <sfrench@samba.org>,
Paulo Alcantara <pc@manguebit.com>,
netfs@lists.linux.dev, linux-afs@lists.infradead.org,
linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org,
ceph-devel@vger.kernel.org, v9fs@lists.linux.dev,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH 00/13] netfs, cifs: Fixes to retry-related code
Date: Thu, 10 Jul 2025 11:47:08 +0100 [thread overview]
Message-ID: <2807750.1752144428@warthog.procyon.org.uk> (raw)
In-Reply-To: <CAKPOu+-qYtC0iFWv856JZinO-0E=SEoQ6pOLvc0bZfsbSakR8w@mail.gmail.com>
Hi Max,
I managed to reproduce it on my test machine with ceph + fscache.
Does this fix the problem for you?
David
---
netfs: Fix copy-to-cache so that it performs collection with ceph+fscache
The netfs copy-to-cache that is used by Ceph with local caching sets up a
new request to write data just read to the cache. The request is started
and then left to look after itself whilst the app continues. The request
gets notified by the backing fs upon completion of the async DIO write, but
then tries to wake up the app because NETFS_RREQ_OFFLOAD_COLLECTION isn't
set - but the app isn't waiting there, and so the request just hangs.
Fix this by setting NETFS_RREQ_OFFLOAD_COLLECTION which causes the
notification from the backing filesystem to put the collection onto a work
queue instead.
Fixes: e2d46f2ec332 ("netfs: Change the read result collector to only use one work item")
Reported-by: Max Kellermann <max.kellermann@ionos.com>
Link: https://lore.kernel.org/r/CAKPOu+8z_ijTLHdiCYGU_Uk7yYD=shxyGLwfe-L7AV3DhebS3w@mail.gmail.com/
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Paulo Alcantara <pc@manguebit.org>
cc: Viacheslav Dubeyko <slava@dubeyko.com>
cc: Alex Markuze <amarkuze@redhat.com>
cc: Ilya Dryomov <idryomov@gmail.com>
cc: netfs@lists.linux.dev
cc: ceph-devel@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
cc: stable@vger.kernel.org
---
fs/netfs/read_pgpriv2.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/netfs/read_pgpriv2.c b/fs/netfs/read_pgpriv2.c
index 5bbe906a551d..080d2a6a51d9 100644
--- a/fs/netfs/read_pgpriv2.c
+++ b/fs/netfs/read_pgpriv2.c
@@ -110,6 +110,7 @@ static struct netfs_io_request *netfs_pgpriv2_begin_copy_to_cache(
if (!creq->io_streams[1].avail)
goto cancel_put;
+ __set_bit(NETFS_RREQ_OFFLOAD_COLLECTION, &creq->flags);
trace_netfs_write(creq, netfs_write_trace_copy_to_cache);
netfs_stat(&netfs_n_wh_copy_to_cache);
rreq->copy_to_cache = creq;
next prev parent reply other threads:[~2025-07-10 10:47 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-01 16:38 [PATCH 00/13] netfs, cifs: Fixes to retry-related code David Howells
2025-07-01 16:38 ` [PATCH 01/13] netfs: Fix hang due to missing case in final DIO read result collection David Howells
2025-07-01 16:38 ` [PATCH 02/13] netfs: Fix double put of request David Howells
2025-07-01 16:38 ` [PATCH 03/13] netfs: Provide helpers to perform NETFS_RREQ_IN_PROGRESS flag wangling David Howells
2025-07-01 16:38 ` [PATCH 04/13] netfs: Fix looping in wait functions David Howells
2025-07-01 16:38 ` [PATCH 05/13] netfs: Fix ref leak on inserted extra subreq in write retry David Howells
2025-07-01 16:38 ` [PATCH 06/13] smb: client: set missing retry flag in smb2_writev_callback() David Howells
2025-07-01 16:38 ` [PATCH 07/13] smb: client: set missing retry flag in cifs_readv_callback() David Howells
2025-07-01 16:38 ` [PATCH 08/13] smb: client: set missing retry flag in cifs_writev_callback() David Howells
2025-07-01 16:38 ` [PATCH 09/13] smb: client: fix warning when reconnecting channel David Howells
2025-07-01 17:07 ` Steve French
2025-07-01 16:38 ` [PATCH 10/13] netfs: Fix i_size updating David Howells
2025-07-01 16:38 ` [PATCH 11/13] netfs: Merge i_size update functions David Howells
2025-07-01 16:38 ` [PATCH 12/13] netfs: Renumber the NETFS_RREQ_* flags to make traces easier to read David Howells
2025-07-01 16:38 ` [PATCH 13/13] netfs: Update tracepoints in a number of ways David Howells
2025-07-09 10:26 ` [PATCH 00/13] netfs, cifs: Fixes to retry-related code Max Kellermann
2025-07-09 13:01 ` David Howells
2025-07-09 19:04 ` Max Kellermann
2025-07-09 20:22 ` David Howells
2025-07-09 21:44 ` Max Kellermann
2025-07-10 10:47 ` David Howells [this message]
2025-07-10 11:17 ` David Howells
2025-07-10 13:41 ` Max Kellermann
2025-07-10 15:32 ` David Howells
2025-07-10 16:31 ` David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2807750.1752144428@warthog.procyon.org.uk \
--to=dhowells@redhat.com \
--cc=amarkuze@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=christian@brauner.io \
--cc=linux-afs@lists.infradead.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=max.kellermann@ionos.com \
--cc=netfs@lists.linux.dev \
--cc=pc@manguebit.com \
--cc=sfrench@samba.org \
--cc=slava@dubeyko.com \
--cc=stable@vger.kernel.org \
--cc=v9fs@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox