[XFRM]: Eliminate refcounting confusion by creating __xfrm_state_put().
We often just do an atomic_dec(&x->refcnt) on an xfrm_state object because we know there is more than 1 reference remaining and thus we can elide the heavier xfrm_state_put() call. Do this behind an inline function called __xfrm_state_put() so that is more obvious and also to allow us to more cleanly add refcount debugging later. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
8525987849
commit
21380b81ef
@@ -403,6 +403,11 @@ unsigned xfrm_spi_hash(xfrm_address_t *addr, u32 spi, u8 proto, unsigned short f
|
||||
|
||||
extern void __xfrm_state_destroy(struct xfrm_state *);
|
||||
|
||||
static inline void __xfrm_state_put(struct xfrm_state *x)
|
||||
{
|
||||
atomic_dec(&x->refcnt);
|
||||
}
|
||||
|
||||
static inline void xfrm_state_put(struct xfrm_state *x)
|
||||
{
|
||||
if (atomic_dec_and_test(&x->refcnt))
|
||||
|
Reference in New Issue
Block a user