• Alex Elder's avatar
    rbd: don't drop watch requests on completion · 8eb87565
    Alex Elder authored
    When we register an osd request to linger, it means that request
    will stay around (under control of the osd client) until we've
    unregistered it.  We do that for an rbd image's header object, and
    we keep a pointer to the object request associated with it.
    
    Keep a reference to the watch object request for as long as it is
    registered to linger.  Drop it again after we've removed the linger
    registration.
    
    This resolves:
        http://tracker.ceph.com/issues/3937
    
    (Note: this originally came about because the osd client was
    issuing a callback more than once.  But that behavior will be
    changing soon, documented in tracker issue 3967.)
    Signed-off-by: default avatarAlex Elder <elder@inktank.com>
    Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
    8eb87565
rbd.c 101 KB