aboutsummaryrefslogtreecommitdiff
path: root/net/rds/send.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2016-03-14 14:18:50 +0800
committerAlex Shi <alex.shi@linaro.org>2016-03-14 14:18:50 +0800
commit5af6a242945e39bf6ea39716d4eba316b735dce8 (patch)
tree35363a04680e1618f6ed1c2b4eafbbc3d59ef048 /net/rds/send.c
parent7eff2ffe05a8b2c6c83a4f511ac6c31c858e3048 (diff)
parent34e0913e457f8469667faf5fa600447aa93371cf (diff)
Merge branch 'linux-linaro-lsk-v3.14' into linux-linaro-lsk-v3.14-android
Diffstat (limited to 'net/rds/send.c')
-rw-r--r--net/rds/send.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/rds/send.c b/net/rds/send.c
index a82fb660ec00..44222c0607c7 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -955,11 +955,13 @@ int rds_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
release_sock(sk);
}
- /* racing with another thread binding seems ok here */
+ lock_sock(sk);
if (daddr == 0 || rs->rs_bound_addr == 0) {
+ release_sock(sk);
ret = -ENOTCONN; /* XXX not a great errno */
goto out;
}
+ release_sock(sk);
/* size of rm including all sgs */
ret = rds_rm_size(msg, payload_len);