diff options
author | Sage Weil <sage@newdream.net> | 2011-03-04 12:25:05 -0800 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2011-03-04 12:25:05 -0800 |
commit | e00de341fdb76c955703b4438100f9933c452b7f (patch) | |
tree | ab776a5e46f1cb5acaa6b26484763259040f470c /net/nonet.c | |
parent | e76661d0a59e53e5cc4dccbe4b755d1dc8a968ec (diff) | |
download | op-kernel-dev-e00de341fdb76c955703b4438100f9933c452b7f.zip op-kernel-dev-e00de341fdb76c955703b4438100f9933c452b7f.tar.gz |
libceph: fix msgr standby handling
The standby logic used to be pretty dependent on the work requeueing
behavior that changed when we switched to WQ_NON_REENTRANT. It was also
very fragile.
Restructure things so that:
- We clear WRITE_PENDING when we set STANDBY. This ensures we will
requeue work when we wake up later.
- con_work backs off if STANDBY is set. There is nothing to do if we are
in standby.
- clear_standby() helper is called by both con_send() and con_keepalive(),
the two actions that can wake us up again. Move the connect_seq++
logic here.
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'net/nonet.c')
0 files changed, 0 insertions, 0 deletions