]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
afs: Fix callback service message parsers to pass through -EAGAIN
authorDavid Howells <dhowells@redhat.com>
Mon, 22 Jun 2026 09:08:47 +0000 (10:08 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 1 Jul 2026 13:26:20 +0000 (15:26 +0200)
The AFS filesystem client uses an rxrpc server to listen for callback
notifications.  Each callback call type handler has a delivery function
that parses the incoming request stream, and this should return -EAGAIN the
last packet hasn't yet been seen, but all currently queued received data is
consumed.  afs_extract_data() does this, but the -EAGAIN return is switched
to 0 inadvertantly

Fix callback service message parsers to pass through -EAGAIN

Fixes: d001648ec7cf ("rxrpc: Don't expose skbs to in-kernel users [ver #2]")
Closes: https://sashiko.dev/#/patchset/20260609081738.770127-1-dhowells%40redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://patch.msgid.link/20260622090856.2746629-14-dhowells@redhat.com
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/afs/cmservice.c

index 263c60c811a5834823da133dfb8ae2b08977449b..db394f101fc66aeeb65b3a0ef09a7e0ea5ec91cc 100644 (file)
@@ -334,7 +334,6 @@ static int afs_deliver_cb_init_call_back_state3(struct afs_call *call)
                ret = afs_extract_data(call, false);
                switch (ret) {
                case 0:         break;
-               case -EAGAIN:   return 0;
                default:        return ret;
                }
 
@@ -456,7 +455,6 @@ static int afs_deliver_cb_probe_uuid(struct afs_call *call)
                ret = afs_extract_data(call, false);
                switch (ret) {
                case 0:         break;
-               case -EAGAIN:   return 0;
                default:        return ret;
                }