• Sage Weil's avatar
    libceph: fix msgr standby handling · e00de341
    Sage Weil authored
    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: default avatarSage Weil <sage@newdream.net>
    e00de341
messenger.c 60.3 KB