mirror of
https://github.com/torvalds/linux.git
synced 2026-09-12 20:53:03 +02:00
cachefiles: Add auxiliary data trace
Add a display of the first 8 bytes of the downloaded auxiliary data and of the on-disk stored auxiliary data as these are used in coherency management. In the case of afs, this holds the data version number. Signed-off-by: David Howells <dhowells@redhat.com> Link: https://lore.kernel.org/r/20241216204124.3752367-17-dhowells@redhat.com cc: Jeff Layton <jlayton@kernel.org> cc: netfs@lists.linux.dev cc: linux-fsdevel@vger.kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
bcb33f79e1
commit
229105e5cf
|
|
@ -77,6 +77,7 @@ int cachefiles_set_object_xattr(struct cachefiles_object *object)
|
||||||
trace_cachefiles_vfs_error(object, file_inode(file), ret,
|
trace_cachefiles_vfs_error(object, file_inode(file), ret,
|
||||||
cachefiles_trace_setxattr_error);
|
cachefiles_trace_setxattr_error);
|
||||||
trace_cachefiles_coherency(object, file_inode(file)->i_ino,
|
trace_cachefiles_coherency(object, file_inode(file)->i_ino,
|
||||||
|
be64_to_cpup((__be64 *)buf->data),
|
||||||
buf->content,
|
buf->content,
|
||||||
cachefiles_coherency_set_fail);
|
cachefiles_coherency_set_fail);
|
||||||
if (ret != -ENOMEM)
|
if (ret != -ENOMEM)
|
||||||
|
|
@ -85,6 +86,7 @@ int cachefiles_set_object_xattr(struct cachefiles_object *object)
|
||||||
"Failed to set xattr with error %d", ret);
|
"Failed to set xattr with error %d", ret);
|
||||||
} else {
|
} else {
|
||||||
trace_cachefiles_coherency(object, file_inode(file)->i_ino,
|
trace_cachefiles_coherency(object, file_inode(file)->i_ino,
|
||||||
|
be64_to_cpup((__be64 *)buf->data),
|
||||||
buf->content,
|
buf->content,
|
||||||
cachefiles_coherency_set_ok);
|
cachefiles_coherency_set_ok);
|
||||||
}
|
}
|
||||||
|
|
@ -126,7 +128,10 @@ int cachefiles_check_auxdata(struct cachefiles_object *object, struct file *file
|
||||||
object,
|
object,
|
||||||
"Failed to read aux with error %zd", xlen);
|
"Failed to read aux with error %zd", xlen);
|
||||||
why = cachefiles_coherency_check_xattr;
|
why = cachefiles_coherency_check_xattr;
|
||||||
} else if (buf->type != CACHEFILES_COOKIE_TYPE_DATA) {
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buf->type != CACHEFILES_COOKIE_TYPE_DATA) {
|
||||||
why = cachefiles_coherency_check_type;
|
why = cachefiles_coherency_check_type;
|
||||||
} else if (memcmp(buf->data, p, len) != 0) {
|
} else if (memcmp(buf->data, p, len) != 0) {
|
||||||
why = cachefiles_coherency_check_aux;
|
why = cachefiles_coherency_check_aux;
|
||||||
|
|
@ -141,7 +146,9 @@ int cachefiles_check_auxdata(struct cachefiles_object *object, struct file *file
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
trace_cachefiles_coherency(object, file_inode(file)->i_ino,
|
trace_cachefiles_coherency(object, file_inode(file)->i_ino,
|
||||||
|
be64_to_cpup((__be64 *)buf->data),
|
||||||
buf->content, why);
|
buf->content, why);
|
||||||
kfree(buf);
|
kfree(buf);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
||||||
|
|
@ -380,10 +380,11 @@ TRACE_EVENT(cachefiles_rename,
|
||||||
TRACE_EVENT(cachefiles_coherency,
|
TRACE_EVENT(cachefiles_coherency,
|
||||||
TP_PROTO(struct cachefiles_object *obj,
|
TP_PROTO(struct cachefiles_object *obj,
|
||||||
ino_t ino,
|
ino_t ino,
|
||||||
|
u64 disk_aux,
|
||||||
enum cachefiles_content content,
|
enum cachefiles_content content,
|
||||||
enum cachefiles_coherency_trace why),
|
enum cachefiles_coherency_trace why),
|
||||||
|
|
||||||
TP_ARGS(obj, ino, content, why),
|
TP_ARGS(obj, ino, disk_aux, content, why),
|
||||||
|
|
||||||
/* Note that obj may be NULL */
|
/* Note that obj may be NULL */
|
||||||
TP_STRUCT__entry(
|
TP_STRUCT__entry(
|
||||||
|
|
@ -391,6 +392,8 @@ TRACE_EVENT(cachefiles_coherency,
|
||||||
__field(enum cachefiles_coherency_trace, why)
|
__field(enum cachefiles_coherency_trace, why)
|
||||||
__field(enum cachefiles_content, content)
|
__field(enum cachefiles_content, content)
|
||||||
__field(u64, ino)
|
__field(u64, ino)
|
||||||
|
__field(u64, aux)
|
||||||
|
__field(u64, disk_aux)
|
||||||
),
|
),
|
||||||
|
|
||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
|
|
@ -398,13 +401,17 @@ TRACE_EVENT(cachefiles_coherency,
|
||||||
__entry->why = why;
|
__entry->why = why;
|
||||||
__entry->content = content;
|
__entry->content = content;
|
||||||
__entry->ino = ino;
|
__entry->ino = ino;
|
||||||
|
__entry->aux = be64_to_cpup((__be64 *)obj->cookie->inline_aux);
|
||||||
|
__entry->disk_aux = disk_aux;
|
||||||
),
|
),
|
||||||
|
|
||||||
TP_printk("o=%08x %s B=%llx c=%u",
|
TP_printk("o=%08x %s B=%llx c=%u aux=%llx dsk=%llx",
|
||||||
__entry->obj,
|
__entry->obj,
|
||||||
__print_symbolic(__entry->why, cachefiles_coherency_traces),
|
__print_symbolic(__entry->why, cachefiles_coherency_traces),
|
||||||
__entry->ino,
|
__entry->ino,
|
||||||
__entry->content)
|
__entry->content,
|
||||||
|
__entry->aux,
|
||||||
|
__entry->disk_aux)
|
||||||
);
|
);
|
||||||
|
|
||||||
TRACE_EVENT(cachefiles_vol_coherency,
|
TRACE_EVENT(cachefiles_vol_coherency,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user