aboutsummaryrefslogtreecommitdiff
path: root/fs/fscache/internal.h
diff options
context:
space:
mode:
authorGravatar David Howells <dhowells@redhat.com> 2021-06-18 11:19:49 +0100
committerGravatar David Howells <dhowells@redhat.com> 2021-08-27 13:34:02 +0100
commit33cba859220b0878b3b2931caa1629a3d2432379 (patch)
tree16479e10dd084bd8193cf70946bfe8367a127c9a /fs/fscache/internal.h
parentfscache: Fix cookie key hashing (diff)
downloadlinux-33cba859220b0878b3b2931caa1629a3d2432379.tar.gz
linux-33cba859220b0878b3b2931caa1629a3d2432379.tar.bz2
linux-33cba859220b0878b3b2931caa1629a3d2432379.zip
fscache: Fix fscache_cookie_put() to not deref after dec
fscache_cookie_put() accesses the cookie it has just put inside the tracepoint that monitors the change - but this is something it's not allowed to do if we didn't reduce the count to zero. Fix this by dropping most of those values from the tracepoint and grabbing the cookie debug ID before doing the dec. Also take the opportunity to switch over the usage and where arguments on the tracepoint to put the reason last. Fixes: a18feb55769b ("fscache: Add tracepoints") Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> cc: linux-cachefs@redhat.com Link: https://lore.kernel.org/r/162431203107.2908479.3259582550347000088.stgit@warthog.procyon.org.uk/
Diffstat (limited to 'fs/fscache/internal.h')
-rw-r--r--fs/fscache/internal.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
index a49136c63e4b..345105dbbfd1 100644
--- a/fs/fscache/internal.h
+++ b/fs/fscache/internal.h
@@ -291,7 +291,7 @@ static inline void fscache_cookie_get(struct fscache_cookie *cookie,
{
int usage = atomic_inc_return(&cookie->usage);
- trace_fscache_cookie(cookie, where, usage);
+ trace_fscache_cookie(cookie->debug_id, usage, where);
}
/*