Loading fs/nfs/idmap.c +5 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ #include "internal.h" #include "netns.h" #include "nfs4trace.h" #define NFS_UINT_MAXLEN 11 Loading Loading @@ -849,6 +850,7 @@ int nfs_map_name_to_uid(const struct nfs_server *server, const char *name, size_ if (!uid_valid(*uid)) ret = -ERANGE; } trace_nfs4_map_name_to_uid(name, namelen, id, ret); return ret; } Loading @@ -865,6 +867,7 @@ int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size if (!gid_valid(*gid)) ret = -ERANGE; } trace_nfs4_map_group_to_gid(name, namelen, id, ret); return ret; } Loading @@ -879,6 +882,7 @@ int nfs_map_uid_to_name(const struct nfs_server *server, kuid_t uid, char *buf, ret = nfs_idmap_lookup_name(id, "user", buf, buflen, idmap); if (ret < 0) ret = nfs_map_numeric_to_string(id, buf, buflen); trace_nfs4_map_uid_to_name(buf, ret, id, ret); return ret; } int nfs_map_gid_to_group(const struct nfs_server *server, kgid_t gid, char *buf, size_t buflen) Loading @@ -892,5 +896,6 @@ int nfs_map_gid_to_group(const struct nfs_server *server, kgid_t gid, char *buf, ret = nfs_idmap_lookup_name(id, "group", buf, buflen, idmap); if (ret < 0) ret = nfs_map_numeric_to_string(id, buf, buflen); trace_nfs4_map_gid_to_group(buf, ret, id, ret); return ret; } fs/nfs/nfs4trace.h +46 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,52 @@ DEFINE_NFS4_INODE_EVENT(nfs4_set_security_label); DEFINE_NFS4_INODE_EVENT(nfs4_recall_delegation); DEFINE_NFS4_INODE_EVENT(nfs4_delegreturn); DECLARE_EVENT_CLASS(nfs4_idmap_event, TP_PROTO( const char *name, int len, u32 id, int error ), TP_ARGS(name, len, id, error), TP_STRUCT__entry( __field(int, error) __field(u32, id) __dynamic_array(char, name, len > 0 ? len + 1 : 1) ), TP_fast_assign( if (len < 0) len = 0; __entry->error = error < 0 ? error : 0; __entry->id = id; memcpy(__get_dynamic_array(name), name, len); ((char *)__get_dynamic_array(name))[len] = 0; ), TP_printk( "error=%d id=%u name=%s", __entry->error, __entry->id, __get_str(name) ) ); #define DEFINE_NFS4_IDMAP_EVENT(name) \ DEFINE_EVENT(nfs4_idmap_event, name, \ TP_PROTO( \ const char *name, \ int len, \ u32 id, \ int error \ ), \ TP_ARGS(name, len, id, error)) DEFINE_NFS4_IDMAP_EVENT(nfs4_map_name_to_uid); DEFINE_NFS4_IDMAP_EVENT(nfs4_map_group_to_gid); DEFINE_NFS4_IDMAP_EVENT(nfs4_map_uid_to_name); DEFINE_NFS4_IDMAP_EVENT(nfs4_map_gid_to_group); #endif /* _TRACE_NFS4_H */ #undef TRACE_INCLUDE_PATH Loading Loading
fs/nfs/idmap.c +5 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ #include "internal.h" #include "netns.h" #include "nfs4trace.h" #define NFS_UINT_MAXLEN 11 Loading Loading @@ -849,6 +850,7 @@ int nfs_map_name_to_uid(const struct nfs_server *server, const char *name, size_ if (!uid_valid(*uid)) ret = -ERANGE; } trace_nfs4_map_name_to_uid(name, namelen, id, ret); return ret; } Loading @@ -865,6 +867,7 @@ int nfs_map_group_to_gid(const struct nfs_server *server, const char *name, size if (!gid_valid(*gid)) ret = -ERANGE; } trace_nfs4_map_group_to_gid(name, namelen, id, ret); return ret; } Loading @@ -879,6 +882,7 @@ int nfs_map_uid_to_name(const struct nfs_server *server, kuid_t uid, char *buf, ret = nfs_idmap_lookup_name(id, "user", buf, buflen, idmap); if (ret < 0) ret = nfs_map_numeric_to_string(id, buf, buflen); trace_nfs4_map_uid_to_name(buf, ret, id, ret); return ret; } int nfs_map_gid_to_group(const struct nfs_server *server, kgid_t gid, char *buf, size_t buflen) Loading @@ -892,5 +896,6 @@ int nfs_map_gid_to_group(const struct nfs_server *server, kgid_t gid, char *buf, ret = nfs_idmap_lookup_name(id, "group", buf, buflen, idmap); if (ret < 0) ret = nfs_map_numeric_to_string(id, buf, buflen); trace_nfs4_map_gid_to_group(buf, ret, id, ret); return ret; }
fs/nfs/nfs4trace.h +46 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,52 @@ DEFINE_NFS4_INODE_EVENT(nfs4_set_security_label); DEFINE_NFS4_INODE_EVENT(nfs4_recall_delegation); DEFINE_NFS4_INODE_EVENT(nfs4_delegreturn); DECLARE_EVENT_CLASS(nfs4_idmap_event, TP_PROTO( const char *name, int len, u32 id, int error ), TP_ARGS(name, len, id, error), TP_STRUCT__entry( __field(int, error) __field(u32, id) __dynamic_array(char, name, len > 0 ? len + 1 : 1) ), TP_fast_assign( if (len < 0) len = 0; __entry->error = error < 0 ? error : 0; __entry->id = id; memcpy(__get_dynamic_array(name), name, len); ((char *)__get_dynamic_array(name))[len] = 0; ), TP_printk( "error=%d id=%u name=%s", __entry->error, __entry->id, __get_str(name) ) ); #define DEFINE_NFS4_IDMAP_EVENT(name) \ DEFINE_EVENT(nfs4_idmap_event, name, \ TP_PROTO( \ const char *name, \ int len, \ u32 id, \ int error \ ), \ TP_ARGS(name, len, id, error)) DEFINE_NFS4_IDMAP_EVENT(nfs4_map_name_to_uid); DEFINE_NFS4_IDMAP_EVENT(nfs4_map_group_to_gid); DEFINE_NFS4_IDMAP_EVENT(nfs4_map_uid_to_name); DEFINE_NFS4_IDMAP_EVENT(nfs4_map_gid_to_group); #endif /* _TRACE_NFS4_H */ #undef TRACE_INCLUDE_PATH Loading