xfrm: release dst_orig in case of error in xfrm_lookup()
authorhuaibin Wang <huaibin.wang@6wind.com>
Wed, 11 Feb 2015 17:10:36 +0000 (18:10 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Thu, 12 Feb 2015 06:10:56 +0000 (07:10 +0100)
commitac37e2515c1a89c477459a2020b6bfdedabdb91b
treea1d2ad2b28b5b4cd032dca88c6c297afb7155d24
parent044a832a7779c0638bea2d0fea901c055b995f4a
xfrm: release dst_orig in case of error in xfrm_lookup()

dst_orig should be released on error. Function like __xfrm_route_forward()
expects that behavior.
Since a recent commit, xfrm_lookup() may also be called by xfrm_lookup_route(),
which expects the opposite.
Let's introduce a new flag (XFRM_LOOKUP_KEEP_DST_REF) to tell what should be
done in case of error.

Fixes: f92ee61982d("xfrm: Generate blackhole routes only from route lookup functions")
Signed-off-by: huaibin Wang <huaibin.wang@6wind.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
include/net/dst.h
net/xfrm/xfrm_policy.c