summaryrefslogtreecommitdiffstats
path: root/net/ceph/messenger.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-11-19 09:02:14 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-11-19 09:02:14 +0100
commit80da549e5225c6f80d45f76ba2b3a4574ed278ae (patch)
tree59799c3d7b7d4a088abdfa3052c3682ed826ba7e /net/ceph/messenger.c
parentASoC: wm2200: Convert over to wm_adsp for ADSP1 support (diff)
parentLinux 3.7-rc6 (diff)
downloadlinux-80da549e5225c6f80d45f76ba2b3a4574ed278ae.tar.xz
linux-80da549e5225c6f80d45f76ba2b3a4574ed278ae.zip
Merge tag 'v3.7-rc6' into asoc-wm2200
Linux 3.7-rc6
Diffstat (limited to 'net/ceph/messenger.c')
-rw-r--r--net/ceph/messenger.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 159aa8bef9e7..3ef1759403b4 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -2300,10 +2300,11 @@ restart:
mutex_unlock(&con->mutex);
return;
} else {
- con->ops->put(con);
dout("con_work %p FAILED to back off %lu\n", con,
con->delay);
+ set_bit(CON_FLAG_BACKOFF, &con->flags);
}
+ goto done;
}
if (con->state == CON_STATE_STANDBY) {
@@ -2749,7 +2750,8 @@ static int ceph_con_in_msg_alloc(struct ceph_connection *con, int *skip)
msg = con->ops->alloc_msg(con, hdr, skip);
mutex_lock(&con->mutex);
if (con->state != CON_STATE_OPEN) {
- ceph_msg_put(msg);
+ if (msg)
+ ceph_msg_put(msg);
return -EAGAIN;
}
con->in_msg = msg;