afs: Fix access after dec in put functions
authorDavid Howells <dhowells@redhat.com>
Wed, 6 Jul 2022 10:26:14 +0000 (11:26 +0100)
committerDavid Howells <dhowells@redhat.com>
Tue, 2 Aug 2022 17:21:29 +0000 (18:21 +0100)
commit2757a4dc184997c66ef1de32636f73b9f21aac14
treee5d3b2a1c35bc3d8126b6b6d4b0c32a19e3fdc6d
parentc56f9ec8b20f931014574b943590c4d830109380
afs: Fix access after dec in put functions

Reference-putting functions should not access the object being put after
decrementing the refcount unless they reduce the refcount to zero.

Fix a couple of instances of this in afs by copying the information to be
logged by tracepoint to local variables before doing the decrement.

[Fixed a bit in afs_put_server() that I'd missed but Marc caught]

Fixes: 341f741f04be ("afs: Refcount the afs_call struct")
Fixes: 452181936931 ("afs: Trace afs_server usage")
Fixes: 977e5f8ed0ab ("afs: Split the usage count on struct afs_server")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Link: https://lore.kernel.org/r/165911278430.3745403.16526310736054780645.stgit@warthog.procyon.org.uk/
fs/afs/cmservice.c
fs/afs/rxrpc.c
fs/afs/server.c
include/trace/events/afs.h