schedule_delayed_work(&mdsc->delayed_work, hz);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
void delayed_work(struct work_struct *work)
-#else
-void delayed_work(void *arg)
-#endif
{
int i;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
struct ceph_mds_client *mdsc =
container_of(work, struct ceph_mds_client, delayed_work.work);
-#else
- struct ceph_mds_client *mdsc = arg;
-#endif
dout(10, "delayed_work on %p\n", mdsc);
mdsc->last_requested_map = 0;
init_completion(&mdsc->map_waiters);
init_completion(&mdsc->session_close_waiters);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
INIT_DELAYED_WORK(&mdsc->delayed_work, delayed_work);
-#else
- INIT_WORK(&mdsc->delayed_work, delayed_work, mdsc);
-#endif
}
void ceph_mdsc_stop(struct ceph_mds_client *mdsc)
spin_lock(&mdsc->lock);
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
cancel_delayed_work_sync(&mdsc->delayed_work); /* cancel timer */
-#else
- cancel_delayed_work(&mdsc->delayed_work); /* cancel timer */
- flush_scheduled_work();
-#endif
spin_unlock(&mdsc->lock);
}