summaryrefslogtreecommitdiff
path: root/net/rds
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2015-12-17 14:57:46 +0100
committerLinus Walleij <linus.walleij@linaro.org>2015-12-17 14:57:46 +0100
commit4dccc93f1e7f4e2fd92a48c40a7ac9211a029352 (patch)
tree717a183f0dba200a882126cf095f38e319302c51 /net/rds
parentd4eed63bb8a3749a6cf19bbc98c943fafb4a826d (diff)
parent9f9499ae8e6415cefc4fe0a96ad0e27864353c89 (diff)
Merge tag 'v4.4-rc5' into devel
Linux 4.4-rc5
Diffstat (limited to 'net/rds')
-rw-r--r--net/rds/connection.c6
-rw-r--r--net/rds/send.c4
2 files changed, 3 insertions, 7 deletions
diff --git a/net/rds/connection.c b/net/rds/connection.c
index d4564036a339..e3b118cae81d 100644
--- a/net/rds/connection.c
+++ b/net/rds/connection.c
@@ -186,12 +186,6 @@ static struct rds_connection *__rds_conn_create(struct net *net,
}
}
- if (trans == NULL) {
- kmem_cache_free(rds_conn_slab, conn);
- conn = ERR_PTR(-ENODEV);
- goto out;
- }
-
conn->c_trans = trans;
ret = trans->conn_alloc(conn, gfp);
diff --git a/net/rds/send.c b/net/rds/send.c
index 827155c2ead1..c9cdb358ea88 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -1013,11 +1013,13 @@ int rds_sendmsg(struct socket *sock, struct msghdr *msg, size_t payload_len)
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);
if (payload_len > rds_sk_sndbuf(rs)) {
ret = -EMSGSIZE;