diff options
author | David Howells <dhowells@redhat.com> | 2018-04-04 13:41:28 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-04-06 14:05:14 +0100 |
commit | ec0328e46d6e5d0f17372eb90ab8e333c2ac7ca9 (patch) | |
tree | 0ff7cf689f4259baa44a5de789f72cdc015a1e30 /include/trace | |
parent | ee1235a9a06813429c201bf186397a6feeea07bf (diff) |
fscache: Maintain a catalogue of allocated cookies
Maintain a catalogue of allocated cookies so that cookie collisions can be
handled properly. For the moment, this just involves printing a warning
and returning a NULL cookie to the caller of fscache_acquire_cookie(), but
in future it might make sense to wait for the old cookie to finish being
cleaned up.
This requires the cookie key to be stored attached to the cookie so that we
still have the key available if the netfs relinquishes the cookie. This is
done by an earlier patch.
The catalogue also renders redundant fscache_netfs_list (used for checking
for duplicates), so that can be removed.
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Anna Schumaker <anna.schumaker@netapp.com>
Tested-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/fscache.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/trace/events/fscache.h b/include/trace/events/fscache.h index 82c060fe6635..686cfe997ed2 100644 --- a/include/trace/events/fscache.h +++ b/include/trace/events/fscache.h @@ -24,10 +24,14 @@ #define __FSCACHE_DECLARE_TRACE_ENUMS_ONCE_ONLY enum fscache_cookie_trace { + fscache_cookie_collision, + fscache_cookie_discard, fscache_cookie_get_acquire_parent, fscache_cookie_get_attach_object, + fscache_cookie_get_reacquire, fscache_cookie_get_register_netfs, fscache_cookie_put_acquire_nobufs, + fscache_cookie_put_dup_netfs, fscache_cookie_put_relinquish, fscache_cookie_put_object, fscache_cookie_put_parent, @@ -86,10 +90,14 @@ enum fscache_page_op_trace { * Declare tracing information enums and their string mappings for display. */ #define fscache_cookie_traces \ + EM(fscache_cookie_collision, "*COLLISION*") \ + EM(fscache_cookie_discard, "DISCARD") \ EM(fscache_cookie_get_acquire_parent, "GET prn") \ EM(fscache_cookie_get_attach_object, "GET obj") \ + EM(fscache_cookie_get_reacquire, "GET raq") \ EM(fscache_cookie_get_register_netfs, "GET net") \ EM(fscache_cookie_put_acquire_nobufs, "PUT nbf") \ + EM(fscache_cookie_put_dup_netfs, "PUT dnt") \ EM(fscache_cookie_put_relinquish, "PUT rlq") \ EM(fscache_cookie_put_object, "PUT obj") \ E_(fscache_cookie_put_parent, "PUT prn") |