ipsec: Put dumpers on the dump list
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 1 Oct 2008 14:03:24 +0000 (07:03 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 1 Oct 2008 14:03:24 +0000 (07:03 -0700)
commit12a169e7d8f4b1c95252d8b04ed0f1033ed7cfe2
tree9630d7798d4fdfc06d6001ccd057aff68f39f908
parentb262e60309e1b0eb25d300c7e739427d5316abb1
ipsec: Put dumpers on the dump list

Herbert Xu came up with the idea and the original patch to make
xfrm_state dump list contain also dumpers:

As it is we go to extraordinary lengths to ensure that states
don't go away while dumpers go to sleep.  It's much easier if
we just put the dumpers themselves on the list since they can't
go away while they're going.

I've also changed the order of addition on new states to prevent
a never-ending dump.

Timo Teräs improved the patch to apply cleanly to latest tree,
modified iteration code to be more readable by using a common
struct for entries in the list, implemented the same idea for
xfrm_policy dumping and moved the af_key specific "last" entry
caching to af_key.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Timo Teras <timo.teras@iki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netlink.h
include/net/xfrm.h
net/key/af_key.c
net/xfrm/xfrm_policy.c
net/xfrm/xfrm_state.c
net/xfrm/xfrm_user.c