unregister_request(osdc, req);
if (rc < 0) {
struct ceph_msg *msg;
- dout(0, "tid %llu err %d, revoking %p pages\n", req->r_tid,
+ dout(0, "tid %llu err %d, revoking %p pages\n", req->r_tid,
rc, req->r_request);
/*
* mark req aborted _before_ revoking pages, so that
INIT_DELAYED_WORK(&osdc->timeout_work, handle_timeout);
}
+void ceph_osdc_stop(struct ceph_osd_client *osdc)
+{
+ cancel_delayed_work_sync(&osdc->timeout_work);
+
+ if (osdc->osdmap) {
+ osdmap_destroy(osdc->osdmap);
+ osdc->osdmap = 0;
+ }
+}
+
/*
extern void ceph_osdc_init(struct ceph_osd_client *osdc,
struct ceph_client *client);
+extern void ceph_osdc_stop(struct ceph_osd_client *osdc);
+
extern void ceph_osdc_handle_reply(struct ceph_osd_client *osdc,
struct ceph_msg *msg);
extern void ceph_osdc_handle_map(struct ceph_osd_client *osdc,
/* unmount */
/* ... */
+ ceph_osdc_stop(&cl->osdc);
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
if (cl->client_kobj)
kobject_put(cl->client_kobj);