• Alex Elder's avatar
    libceph: separate non-locked fault handling · 93209264
    Alex Elder authored
    An error occurring on a ceph connection is treated as a fault,
    causing the connection to be reset.  The initial part of this fault
    handling has to be done while holding the connection mutex, but
    it must then be dropped for the last part.
    
    Separate the part of this fault handling that executes without the
    lock into its own function, con_fault_finish().  Move the call to
    this new function, as well as call that drops the connection mutex,
    into ceph_fault().  Rename that function con_fault() to reflect that
    it's only handling the connection part of the fault handling.
    
    The motivation for this was a warning from sparse about the locking
    being done here.  Rearranging things this way keeps all the mutex
    manipulation within ceph_fault(), and this stops sparse from
    complaining.
    
    This partially resolves:
        http://tracker.ceph.com/issues/4184Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: default avatarAlex Elder <elder@inktank.com>
    Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
    93209264
messenger.c 71.8 KB