@@ -613,20 +613,21 @@ TRACE_EVENT(nfsd_clid_cred_mismatch,
613613 __field (u32 , cl_id )
614614 __field (unsigned long , cl_flavor )
615615 __field (unsigned long , new_flavor )
616- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
616+ __sockaddr ( addr , rqstp -> rq_xprt -> xpt_remotelen )
617617 ),
618618 TP_fast_assign (
619619 __entry -> cl_boot = clp -> cl_clientid .cl_boot ;
620620 __entry -> cl_id = clp -> cl_clientid .cl_id ;
621621 __entry -> cl_flavor = clp -> cl_cred .cr_flavor ;
622622 __entry -> new_flavor = rqstp -> rq_cred .cr_flavor ;
623- memcpy ( __entry -> addr , & rqstp -> rq_xprt -> xpt_remote ,
624- sizeof ( struct sockaddr_in6 ) );
623+ __assign_sockaddr ( addr , & rqstp -> rq_xprt -> xpt_remote ,
624+ rqstp -> rq_xprt -> xpt_remotelen );
625625 ),
626626 TP_printk ("client %08x:%08x flavor=%s, conflict=%s from addr=%pISpc" ,
627627 __entry -> cl_boot , __entry -> cl_id ,
628628 show_nfsd_authflavor (__entry -> cl_flavor ),
629- show_nfsd_authflavor (__entry -> new_flavor ), __entry -> addr
629+ show_nfsd_authflavor (__entry -> new_flavor ),
630+ __get_sockaddr (addr )
630631 )
631632)
632633
@@ -642,7 +643,7 @@ TRACE_EVENT(nfsd_clid_verf_mismatch,
642643 __field (u32 , cl_id )
643644 __array (unsigned char , cl_verifier , NFS4_VERIFIER_SIZE )
644645 __array (unsigned char , new_verifier , NFS4_VERIFIER_SIZE )
645- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
646+ __sockaddr ( addr , rqstp -> rq_xprt -> xpt_remotelen )
646647 ),
647648 TP_fast_assign (
648649 __entry -> cl_boot = clp -> cl_clientid .cl_boot ;
@@ -651,14 +652,14 @@ TRACE_EVENT(nfsd_clid_verf_mismatch,
651652 NFS4_VERIFIER_SIZE );
652653 memcpy (__entry -> new_verifier , (void * )verf ,
653654 NFS4_VERIFIER_SIZE );
654- memcpy ( __entry -> addr , & rqstp -> rq_xprt -> xpt_remote ,
655- sizeof ( struct sockaddr_in6 ) );
655+ __assign_sockaddr ( addr , & rqstp -> rq_xprt -> xpt_remote ,
656+ rqstp -> rq_xprt -> xpt_remotelen );
656657 ),
657658 TP_printk ("client %08x:%08x verf=0x%s, updated=0x%s from addr=%pISpc" ,
658659 __entry -> cl_boot , __entry -> cl_id ,
659660 __print_hex_str (__entry -> cl_verifier , NFS4_VERIFIER_SIZE ),
660661 __print_hex_str (__entry -> new_verifier , NFS4_VERIFIER_SIZE ),
661- __entry -> addr
662+ __get_sockaddr ( addr )
662663 )
663664);
664665
@@ -908,18 +909,17 @@ TRACE_EVENT(nfsd_cb_args,
908909 __field (u32 , cl_id )
909910 __field (u32 , prog )
910911 __field (u32 , ident )
911- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
912+ __sockaddr ( addr , conn -> cb_addrlen )
912913 ),
913914 TP_fast_assign (
914915 __entry -> cl_boot = clp -> cl_clientid .cl_boot ;
915916 __entry -> cl_id = clp -> cl_clientid .cl_id ;
916917 __entry -> prog = conn -> cb_prog ;
917918 __entry -> ident = conn -> cb_ident ;
918- memcpy (__entry -> addr , & conn -> cb_addr ,
919- sizeof (struct sockaddr_in6 ));
919+ __assign_sockaddr (addr , & conn -> cb_addr , conn -> cb_addrlen );
920920 ),
921921 TP_printk ("addr=%pISpc client %08x:%08x prog=%u ident=%u" ,
922- __entry -> addr , __entry -> cl_boot , __entry -> cl_id ,
922+ __get_sockaddr ( addr ) , __entry -> cl_boot , __entry -> cl_id ,
923923 __entry -> prog , __entry -> ident )
924924);
925925
@@ -951,17 +951,17 @@ DECLARE_EVENT_CLASS(nfsd_cb_class,
951951 __field (unsigned long , state )
952952 __field (u32 , cl_boot )
953953 __field (u32 , cl_id )
954- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
954+ __sockaddr ( addr , clp -> cl_cb_conn . cb_addrlen )
955955 ),
956956 TP_fast_assign (
957957 __entry -> state = clp -> cl_cb_state ;
958958 __entry -> cl_boot = clp -> cl_clientid .cl_boot ;
959959 __entry -> cl_id = clp -> cl_clientid .cl_id ;
960- memcpy ( __entry -> addr , & clp -> cl_cb_conn .cb_addr ,
961- sizeof ( struct sockaddr_in6 ));
960+ __assign_sockaddr ( addr , & clp -> cl_cb_conn .cb_addr ,
961+ clp -> cl_cb_conn . cb_addrlen )
962962 ),
963963 TP_printk ("addr=%pISpc client %08x:%08x state=%s" ,
964- __entry -> addr , __entry -> cl_boot , __entry -> cl_id ,
964+ __get_sockaddr ( addr ) , __entry -> cl_boot , __entry -> cl_id ,
965965 show_cb_state (__entry -> state ))
966966);
967967
@@ -1001,19 +1001,19 @@ TRACE_EVENT(nfsd_cb_setup,
10011001 __field (u32 , cl_boot )
10021002 __field (u32 , cl_id )
10031003 __field (unsigned long , authflavor )
1004- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
1004+ __sockaddr ( addr , clp -> cl_cb_conn . cb_addrlen )
10051005 __array (unsigned char , netid , 8 )
10061006 ),
10071007 TP_fast_assign (
10081008 __entry -> cl_boot = clp -> cl_clientid .cl_boot ;
10091009 __entry -> cl_id = clp -> cl_clientid .cl_id ;
10101010 strlcpy (__entry -> netid , netid , sizeof (__entry -> netid ));
10111011 __entry -> authflavor = authflavor ;
1012- memcpy ( __entry -> addr , & clp -> cl_cb_conn .cb_addr ,
1013- sizeof ( struct sockaddr_in6 ));
1012+ __assign_sockaddr ( addr , & clp -> cl_cb_conn .cb_addr ,
1013+ clp -> cl_cb_conn . cb_addrlen )
10141014 ),
10151015 TP_printk ("addr=%pISpc client %08x:%08x proto=%s flavor=%s" ,
1016- __entry -> addr , __entry -> cl_boot , __entry -> cl_id ,
1016+ __get_sockaddr ( addr ) , __entry -> cl_boot , __entry -> cl_id ,
10171017 __entry -> netid , show_nfsd_authflavor (__entry -> authflavor ))
10181018);
10191019
@@ -1027,30 +1027,32 @@ TRACE_EVENT(nfsd_cb_setup_err,
10271027 __field (long , error )
10281028 __field (u32 , cl_boot )
10291029 __field (u32 , cl_id )
1030- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
1030+ __sockaddr ( addr , clp -> cl_cb_conn . cb_addrlen )
10311031 ),
10321032 TP_fast_assign (
10331033 __entry -> error = error ;
10341034 __entry -> cl_boot = clp -> cl_clientid .cl_boot ;
10351035 __entry -> cl_id = clp -> cl_clientid .cl_id ;
1036- memcpy ( __entry -> addr , & clp -> cl_cb_conn .cb_addr ,
1037- sizeof ( struct sockaddr_in6 ));
1036+ __assign_sockaddr ( addr , & clp -> cl_cb_conn .cb_addr ,
1037+ clp -> cl_cb_conn . cb_addrlen )
10381038 ),
10391039 TP_printk ("addr=%pISpc client %08x:%08x error=%ld" ,
1040- __entry -> addr , __entry -> cl_boot , __entry -> cl_id , __entry -> error )
1040+ __get_sockaddr (addr ), __entry -> cl_boot , __entry -> cl_id ,
1041+ __entry -> error )
10411042);
10421043
1043- TRACE_EVENT (nfsd_cb_recall ,
1044+ TRACE_EVENT_CONDITION (nfsd_cb_recall ,
10441045 TP_PROTO (
10451046 const struct nfs4_stid * stid
10461047 ),
10471048 TP_ARGS (stid ),
1049+ TP_CONDITION (stid -> sc_client ),
10481050 TP_STRUCT__entry (
10491051 __field (u32 , cl_boot )
10501052 __field (u32 , cl_id )
10511053 __field (u32 , si_id )
10521054 __field (u32 , si_generation )
1053- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
1055+ __sockaddr ( addr , stid -> sc_client -> cl_cb_conn . cb_addrlen )
10541056 ),
10551057 TP_fast_assign (
10561058 const stateid_t * stp = & stid -> sc_stateid ;
@@ -1060,14 +1062,11 @@ TRACE_EVENT(nfsd_cb_recall,
10601062 __entry -> cl_id = stp -> si_opaque .so_clid .cl_id ;
10611063 __entry -> si_id = stp -> si_opaque .so_id ;
10621064 __entry -> si_generation = stp -> si_generation ;
1063- if (clp )
1064- memcpy (__entry -> addr , & clp -> cl_cb_conn .cb_addr ,
1065- sizeof (struct sockaddr_in6 ));
1066- else
1067- memset (__entry -> addr , 0 , sizeof (struct sockaddr_in6 ));
1065+ __assign_sockaddr (addr , & clp -> cl_cb_conn .cb_addr ,
1066+ clp -> cl_cb_conn .cb_addrlen )
10681067 ),
10691068 TP_printk ("addr=%pISpc client %08x:%08x stateid %08x:%08x" ,
1070- __entry -> addr , __entry -> cl_boot , __entry -> cl_id ,
1069+ __get_sockaddr ( addr ) , __entry -> cl_boot , __entry -> cl_id ,
10711070 __entry -> si_id , __entry -> si_generation )
10721071);
10731072
@@ -1081,19 +1080,19 @@ TRACE_EVENT(nfsd_cb_notify_lock,
10811080 __field (u32 , cl_boot )
10821081 __field (u32 , cl_id )
10831082 __field (u32 , fh_hash )
1084- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
1083+ __sockaddr ( addr , lo -> lo_owner . so_client -> cl_cb_conn . cb_addrlen )
10851084 ),
10861085 TP_fast_assign (
10871086 const struct nfs4_client * clp = lo -> lo_owner .so_client ;
10881087
10891088 __entry -> cl_boot = clp -> cl_clientid .cl_boot ;
10901089 __entry -> cl_id = clp -> cl_clientid .cl_id ;
10911090 __entry -> fh_hash = knfsd_fh_hash (& nbl -> nbl_fh );
1092- memcpy ( __entry -> addr , & clp -> cl_cb_conn .cb_addr ,
1093- sizeof ( struct sockaddr_in6 ));
1091+ __assign_sockaddr ( addr , & clp -> cl_cb_conn .cb_addr ,
1092+ clp -> cl_cb_conn . cb_addrlen )
10941093 ),
10951094 TP_printk ("addr=%pISpc client %08x:%08x fh_hash=0x%08x" ,
1096- __entry -> addr , __entry -> cl_boot , __entry -> cl_id ,
1095+ __get_sockaddr ( addr ) , __entry -> cl_boot , __entry -> cl_id ,
10971096 __entry -> fh_hash )
10981097);
10991098
@@ -1114,7 +1113,7 @@ TRACE_EVENT(nfsd_cb_offload,
11141113 __field (u32 , fh_hash )
11151114 __field (int , status )
11161115 __field (u64 , count )
1117- __array ( unsigned char , addr , sizeof ( struct sockaddr_in6 ) )
1116+ __sockaddr ( addr , clp -> cl_cb_conn . cb_addrlen )
11181117 ),
11191118 TP_fast_assign (
11201119 __entry -> cl_boot = stp -> si_opaque .so_clid .cl_boot ;
@@ -1124,11 +1123,11 @@ TRACE_EVENT(nfsd_cb_offload,
11241123 __entry -> fh_hash = knfsd_fh_hash (fh );
11251124 __entry -> status = be32_to_cpu (status );
11261125 __entry -> count = count ;
1127- memcpy ( __entry -> addr , & clp -> cl_cb_conn .cb_addr ,
1128- sizeof ( struct sockaddr_in6 ));
1126+ __assign_sockaddr ( addr , & clp -> cl_cb_conn .cb_addr ,
1127+ clp -> cl_cb_conn . cb_addrlen )
11291128 ),
11301129 TP_printk ("addr=%pISpc client %08x:%08x stateid %08x:%08x fh_hash=0x%08x count=%llu status=%d" ,
1131- __entry -> addr , __entry -> cl_boot , __entry -> cl_id ,
1130+ __get_sockaddr ( addr ) , __entry -> cl_boot , __entry -> cl_id ,
11321131 __entry -> si_id , __entry -> si_generation ,
11331132 __entry -> fh_hash , __entry -> count , __entry -> status )
11341133);
0 commit comments