@@ -2203,7 +2203,7 @@ DEFINE_EVENT(nfsd_copy_class, nfsd_copy_##name, \
22032203
22042204DEFINE_COPY_EVENT (inter );
22052205DEFINE_COPY_EVENT (intra );
2206- DEFINE_COPY_EVENT (do_async );
2206+ DEFINE_COPY_EVENT (async );
22072207
22082208TRACE_EVENT (nfsd_copy_done ,
22092209 TP_PROTO (
@@ -2229,6 +2229,75 @@ TRACE_EVENT(nfsd_copy_done,
22292229 )
22302230);
22312231
2232+ TRACE_EVENT (nfsd_copy_async_done ,
2233+ TP_PROTO (
2234+ const struct nfsd4_copy * copy
2235+ ),
2236+ TP_ARGS (copy ),
2237+ TP_STRUCT__entry (
2238+ __field (int , status )
2239+ __field (bool , intra )
2240+ __field (bool , async )
2241+ __field (u32 , src_cl_boot )
2242+ __field (u32 , src_cl_id )
2243+ __field (u32 , src_so_id )
2244+ __field (u32 , src_si_generation )
2245+ __field (u32 , dst_cl_boot )
2246+ __field (u32 , dst_cl_id )
2247+ __field (u32 , dst_so_id )
2248+ __field (u32 , dst_si_generation )
2249+ __field (u32 , cb_cl_boot )
2250+ __field (u32 , cb_cl_id )
2251+ __field (u32 , cb_so_id )
2252+ __field (u32 , cb_si_generation )
2253+ __field (u64 , src_cp_pos )
2254+ __field (u64 , dst_cp_pos )
2255+ __field (u64 , cp_count )
2256+ __sockaddr (addr , sizeof (struct sockaddr_in6 ))
2257+ ),
2258+ TP_fast_assign (
2259+ const stateid_t * src_stp = & copy -> cp_src_stateid ;
2260+ const stateid_t * dst_stp = & copy -> cp_dst_stateid ;
2261+ const stateid_t * cb_stp = & copy -> cp_res .cb_stateid ;
2262+
2263+ __entry -> status = be32_to_cpu (copy -> nfserr );
2264+ __entry -> intra = test_bit (NFSD4_COPY_F_INTRA , & copy -> cp_flags );
2265+ __entry -> async = !test_bit (NFSD4_COPY_F_SYNCHRONOUS , & copy -> cp_flags );
2266+ __entry -> src_cl_boot = src_stp -> si_opaque .so_clid .cl_boot ;
2267+ __entry -> src_cl_id = src_stp -> si_opaque .so_clid .cl_id ;
2268+ __entry -> src_so_id = src_stp -> si_opaque .so_id ;
2269+ __entry -> src_si_generation = src_stp -> si_generation ;
2270+ __entry -> dst_cl_boot = dst_stp -> si_opaque .so_clid .cl_boot ;
2271+ __entry -> dst_cl_id = dst_stp -> si_opaque .so_clid .cl_id ;
2272+ __entry -> dst_so_id = dst_stp -> si_opaque .so_id ;
2273+ __entry -> dst_si_generation = dst_stp -> si_generation ;
2274+ __entry -> cb_cl_boot = cb_stp -> si_opaque .so_clid .cl_boot ;
2275+ __entry -> cb_cl_id = cb_stp -> si_opaque .so_clid .cl_id ;
2276+ __entry -> cb_so_id = cb_stp -> si_opaque .so_id ;
2277+ __entry -> cb_si_generation = cb_stp -> si_generation ;
2278+ __entry -> src_cp_pos = copy -> cp_src_pos ;
2279+ __entry -> dst_cp_pos = copy -> cp_dst_pos ;
2280+ __entry -> cp_count = copy -> cp_count ;
2281+ __assign_sockaddr (addr , & copy -> cp_clp -> cl_addr ,
2282+ sizeof (struct sockaddr_in6 ));
2283+ ),
2284+ TP_printk ("client=%pISpc status=%d intra=%d async=%d "
2285+ "src_client %08x:%08x src_stateid %08x:%08x "
2286+ "dst_client %08x:%08x dst_stateid %08x:%08x "
2287+ "cb_client %08x:%08x cb_stateid %08x:%08x "
2288+ "cp_src_pos=%llu cp_dst_pos=%llu cp_count=%llu" ,
2289+ __get_sockaddr (addr ),
2290+ __entry -> status , __entry -> intra , __entry -> async ,
2291+ __entry -> src_cl_boot , __entry -> src_cl_id ,
2292+ __entry -> src_so_id , __entry -> src_si_generation ,
2293+ __entry -> dst_cl_boot , __entry -> dst_cl_id ,
2294+ __entry -> dst_so_id , __entry -> dst_si_generation ,
2295+ __entry -> cb_cl_boot , __entry -> cb_cl_id ,
2296+ __entry -> cb_so_id , __entry -> cb_si_generation ,
2297+ __entry -> src_cp_pos , __entry -> dst_cp_pos , __entry -> cp_count
2298+ )
2299+ );
2300+
22322301#endif /* _NFSD_TRACE_H */
22332302
22342303#undef TRACE_INCLUDE_PATH
0 commit comments