libceph: transition socket state prior to actual connect
authorSage Weil <sage@inktank.com>
Sat, 9 Jun 2012 21:19:21 +0000 (14:19 -0700)
committerSage Weil <sage@inktank.com>
Fri, 15 Jun 2012 18:26:37 +0000 (11:26 -0700)
commit89a86be0ce20022f6ede8bccec078dbb3d63caaa
tree8f0f125b5f094d647c77eef45b7e33f6d0ab2b15
parenta5506049500b30dbc5edb4d07a3577477c1f3643
libceph: transition socket state prior to actual connect

Once we call ->connect(), we are racing against the actual
connection, and a subsequent transition from CONNECTING ->
CONNECTED.  Set the state to CONNECTING before that, under the
protection of the mutex, to avoid the race.

This was introduced in 928443cd9644e7cfd46f687dbeffda2d1a357ff9,
with the original socket state code.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Alex Elder <elder@inktank.com>
net/ceph/messenger.c