Skip to contentSkip to conversation

libceph: handle notarget requests.

PATCH Applied majianpeng 1 participant 1 message Jul 16, 2013

lore
Share & tools
lore

majianpeng

author
#0 lore raw

cover libceph: handle notarget requests.

In func ceph_osdc_start_request,there are two types:
A:nofail which mean if met error, the request will retry to do.
B:fail which mean if met error, the caller handle the error,like realse those relative pages.

But now, the code don't distinguish between them.
For caller which can met error, it must call __unregister_request if met error.It don't make any sense to retry to do because the caller alreay handle failed routine like release papges.
For requests which in req_notarget,they only remap in func ceph_osdc_handle_map which update the epoch of osdmap. But for reaseon which cause __map_request failed like ENOMEM,it won't update the epoch of osdmap,so notarget-requests won't remap for ever.

Jianpeng Ma (2):
libceph: For nofail == false, if __map_request failed,it should unregister.
libceph: Remap notarget requests in handle_timeout.

 net/ceph/osd_client.c | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)