]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/xfrm/xfrm_state.c
Merge branch 'docs-next' of git://git.lwn.net/linux-2.6
[mv-sheeva.git] / net / xfrm / xfrm_state.c
index d575f053486889ad5bc1aae12ffa36e8e5eb3342..f83a3d1da81b90ec382918e4b5b193a150b99211 100644 (file)
@@ -1907,7 +1907,7 @@ int xfrm_state_mtu(struct xfrm_state *x, int mtu)
        return res;
 }
 
-int xfrm_init_state(struct xfrm_state *x)
+int __xfrm_init_state(struct xfrm_state *x, bool init_replay)
 {
        struct xfrm_state_afinfo *afinfo;
        struct xfrm_mode *inner_mode;
@@ -1980,12 +1980,25 @@ int xfrm_init_state(struct xfrm_state *x)
        if (x->outer_mode == NULL)
                goto error;
 
+       if (init_replay) {
+               err = xfrm_init_replay(x);
+               if (err)
+                       goto error;
+       }
+
        x->km.state = XFRM_STATE_VALID;
 
 error:
        return err;
 }
 
+EXPORT_SYMBOL(__xfrm_init_state);
+
+int xfrm_init_state(struct xfrm_state *x)
+{
+       return __xfrm_init_state(x, true);
+}
+
 EXPORT_SYMBOL(xfrm_init_state);
 
 int __net_init xfrm_state_init(struct net *net)