libceph: complete lingering requests only once
authorAlex Elder <elder@inktank.com>
Wed, 27 Feb 2013 16:26:25 +0000 (10:26 -0600)
committerSage Weil <sage@inktank.com>
Thu, 2 May 2013 04:16:12 +0000 (21:16 -0700)
commit0d5af1643535508f82d6bcc2b9b93b180e8c3f4b
tree723493b46491da26aa66cc60604f11e701d32858
parent3f99969f42300e52779ae0656678c2534097f2ea
libceph: complete lingering requests only once

An osd request marked to linger will be re-submitted in the event
a connection to the target osd gets dropped.  Currently, if there
is a callback function associated with a request it will be called
each time a request is submitted--which for lingering requests can
be more than once.

Change it so a request--including lingering ones--will get completed
(from the perspective of the user of the osd client) exactly once.

This resolves:
    http://tracker.ceph.com/issues/3967

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
include/linux/ceph/osd_client.h
net/ceph/osd_client.c