Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[sfrench/cifs-2.6.git] / net / mptcp / protocol.c
index 6cf5fa191b1260d42e1f2f0192597d34993aa477..57f23f4e3a7ca053d7cf026251f1a40453aac7f1 100644 (file)
@@ -2884,12 +2884,12 @@ static void mptcp_copy_inaddrs(struct sock *msk, const struct sock *ssk)
 
 static int mptcp_disconnect(struct sock *sk, int flags)
 {
-       struct mptcp_subflow_context *subflow;
+       struct mptcp_subflow_context *subflow, *tmp;
        struct mptcp_sock *msk = mptcp_sk(sk);
 
        inet_sk_state_store(sk, TCP_CLOSE);
 
-       mptcp_for_each_subflow(msk, subflow) {
+       list_for_each_entry_safe(subflow, tmp, &msk->conn_list, node) {
                struct sock *ssk = mptcp_subflow_tcp_sock(subflow);
 
                __mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_FASTCLOSE);