From 4262ba0ae16539f576d80b5bfa053bae56e45131 Mon Sep 17 00:00:00 2001 From: Vlad Yasevich Date: Tue, 3 Jul 2007 12:47:40 -0400 Subject: [PATCH] --- yaml --- r: 58239 b: refs/heads/master c: f50f95cab735ebe2993e8d1549f0615bad05f3f2 h: refs/heads/master i: 58237: 2a38fd1a2384cbaa43af690315bf4ca6d7ea3c24 58235: 7356e835ac356fec70d604e26a88d41aa3d09ec4 58231: eda5ae2ef40383186fc868dabcca66267732600e 58223: 3b3e2bbf727c6b52d53222d2ca0c2aaa0703ac9a 58207: 4c7f916210b50e92da5cdf1238adc157858e0a4f 58175: a2af70ccf45c36df7012533fa0819ebc96b1fb15 58111: aeda7c67a2ba0d205f932c91182254f33bd06665 v: v3 --- [refs] | 2 +- trunk/net/sctp/socket.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index a42dfbd5d208..e20ed4339596 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3663c306609a9322a484fba28b3da66142c50ee9 +refs/heads/master: f50f95cab735ebe2993e8d1549f0615bad05f3f2 diff --git a/trunk/net/sctp/socket.c b/trunk/net/sctp/socket.c index 1e788279bb22..b1917f68723c 100644 --- a/trunk/net/sctp/socket.c +++ b/trunk/net/sctp/socket.c @@ -980,6 +980,7 @@ static int __sctp_connect(struct sock* sk, union sctp_addr *sa_addr; void *addr_buf; unsigned short port; + unsigned int f_flags = 0; sp = sctp_sk(sk); ep = sp->ep; @@ -1106,7 +1107,14 @@ static int __sctp_connect(struct sock* sk, af->to_sk_daddr(&to, sk); sk->sk_err = 0; - timeo = sock_sndtimeo(sk, sk->sk_socket->file->f_flags & O_NONBLOCK); + /* in-kernel sockets don't generally have a file allocated to them + * if all they do is call sock_create_kern(). + */ + if (sk->sk_socket->file) + f_flags = sk->sk_socket->file->f_flags; + + timeo = sock_sndtimeo(sk, f_flags & O_NONBLOCK); + err = sctp_wait_for_connect(asoc, &timeo); /* Don't free association on exit. */