Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*


 124         kstat_named_t   rsxdrcall;
 125         kstat_named_t   rsdupchecks;
 126         kstat_named_t   rsdupreqs;
 127 } clts_rsstat_tmpl = {
 128         { "calls",      KSTAT_DATA_UINT64 },
 129         { "badcalls",   KSTAT_DATA_UINT64 },
 130         { "nullrecv",   KSTAT_DATA_UINT64 },
 131         { "badlen",     KSTAT_DATA_UINT64 },
 132         { "xdrcall",    KSTAT_DATA_UINT64 },
 133         { "dupchecks",  KSTAT_DATA_UINT64 },
 134         { "dupreqs",    KSTAT_DATA_UINT64 }
 135 };
 136 
 137 static uint_t clts_rsstat_ndata =
 138         sizeof (clts_rsstat_tmpl) / sizeof (kstat_named_t);
 139 
 140 #define CLONE2STATS(clone_xprt) \
 141         (struct rpc_clts_server *)(clone_xprt)->xp_master->xp_p2
 142 
 143 #define RSSTAT_INCR(stats, x)   \
 144         atomic_add_64(&(stats)->x.value.ui64, 1)
 145 
 146 /*
 147  * Create a transport record.
 148  * The transport record, output buffer, and private data structure
 149  * are allocated.  The output buffer is serialized into using xdrmem.
 150  * There is one transport record per user process which implements a
 151  * set of services.
 152  */
 153 /* ARGSUSED */
 154 int
 155 svc_clts_kcreate(file_t *fp, uint_t sendsz, struct T_info_ack *tinfo,
 156     SVCMASTERXPRT **nxprt)
 157 {
 158         SVCMASTERXPRT *xprt;
 159         struct rpcstat *rpcstat;
 160 
 161         if (nxprt == NULL)
 162                 return (EINVAL);
 163 
 164         rpcstat = zone_getspecific(rpcstat_zone_key, curproc->p_zone);




 124         kstat_named_t   rsxdrcall;
 125         kstat_named_t   rsdupchecks;
 126         kstat_named_t   rsdupreqs;
 127 } clts_rsstat_tmpl = {
 128         { "calls",      KSTAT_DATA_UINT64 },
 129         { "badcalls",   KSTAT_DATA_UINT64 },
 130         { "nullrecv",   KSTAT_DATA_UINT64 },
 131         { "badlen",     KSTAT_DATA_UINT64 },
 132         { "xdrcall",    KSTAT_DATA_UINT64 },
 133         { "dupchecks",  KSTAT_DATA_UINT64 },
 134         { "dupreqs",    KSTAT_DATA_UINT64 }
 135 };
 136 
 137 static uint_t clts_rsstat_ndata =
 138         sizeof (clts_rsstat_tmpl) / sizeof (kstat_named_t);
 139 
 140 #define CLONE2STATS(clone_xprt) \
 141         (struct rpc_clts_server *)(clone_xprt)->xp_master->xp_p2
 142 
 143 #define RSSTAT_INCR(stats, x)   \
 144         atomic_inc_64(&(stats)->x.value.ui64)
 145 
 146 /*
 147  * Create a transport record.
 148  * The transport record, output buffer, and private data structure
 149  * are allocated.  The output buffer is serialized into using xdrmem.
 150  * There is one transport record per user process which implements a
 151  * set of services.
 152  */
 153 /* ARGSUSED */
 154 int
 155 svc_clts_kcreate(file_t *fp, uint_t sendsz, struct T_info_ack *tinfo,
 156     SVCMASTERXPRT **nxprt)
 157 {
 158         SVCMASTERXPRT *xprt;
 159         struct rpcstat *rpcstat;
 160 
 161         if (nxprt == NULL)
 162                 return (EINVAL);
 163 
 164         rpcstat = zone_getspecific(rpcstat_zone_key, curproc->p_zone);