]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
afs: Fix missing NULL pointer check in afs_break_some_callbacks()
authorDavid Howells <dhowells@redhat.com>
Mon, 22 Jun 2026 09:08:49 +0000 (10:08 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 1 Jul 2026 13:26:21 +0000 (15:26 +0200)
Fix afs_break_some_callbacks() to check to see if afs_lookup_volume_rcu()
returned NULL (e.g. the specified volume is unknown).

Fixes: 8230fd8217b7 ("afs: Make callback processing more efficient.")
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-16-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/callback.c

index dd7a407ea36861066d8b47c25c5a9d0a80327f8a..74853e0d0435ae74e00a873272f41821f5b1904b 100644 (file)
@@ -213,7 +213,11 @@ static void afs_break_some_callbacks(struct afs_server *server,
 
        rcu_read_lock();
        volume = afs_lookup_volume_rcu(server->cell, vid);
-       if (cbb->fid.vnode == 0 && cbb->fid.unique == 0) {
+       if (!volume) {
+               /* Ignore breaks on unknown volumes. */
+               rcu_read_unlock();
+               *_count = 0;
+       } else if (cbb->fid.vnode == 0 && cbb->fid.unique == 0) {
                afs_break_volume_callback(server, volume);
                *_count -= 1;
                if (*_count)