NFSv4.1/pnfs: Add a tracepoint for return-on-close events
[firefly-linux-kernel-4.4.55.git] / net / xfrm / xfrm_state.c
index 96688cd0f6f11bddee4451de1d09a9a8e5f212dd..9895a8c56d8c2675393e1aad3a1a438e16d4d47c 100644 (file)
@@ -1626,7 +1626,7 @@ int xfrm_state_walk(struct net *net, struct xfrm_state_walk *walk,
        if (list_empty(&walk->all))
                x = list_first_entry(&net->xfrm.state_all, struct xfrm_state_walk, all);
        else
-               x = list_entry(&walk->all, struct xfrm_state_walk, all);
+               x = list_first_entry(&walk->all, struct xfrm_state_walk, all);
        list_for_each_entry_from(x, &net->xfrm.state_all, all) {
                if (x->state == XFRM_STATE_DEAD)
                        continue;
@@ -1908,7 +1908,7 @@ int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo)
                return -EAFNOSUPPORT;
        spin_lock_bh(&xfrm_state_afinfo_lock);
        if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL))
-               err = -ENOBUFS;
+               err = -EEXIST;
        else
                rcu_assign_pointer(xfrm_state_afinfo[afinfo->family], afinfo);
        spin_unlock_bh(&xfrm_state_afinfo_lock);