DEFINE_TIMER||CFS_DEFINE_TIMER
define OBD_CONNECT||see "XXX README XXX" below and contact adilger@whamcloud.com
__u[136][624] ocd_||see "XXX README XXX" below and contact adilger@whamcloud.com
+del_timer||timer_delete
+del_timer_sync||timer_delete_sync
+del_singleshot_timer_sync||timer_delete_sync
EWOULDBLOCK||EAGAIN
container_of0||container_of_safe
DN_MAX_BONUSLEN||DN_BONUS_SIZE(dnodesize)
])
]) # LIBCFS_BIO_ALLOC_WITH_BDEV
+#
+# LIBCFS_TIMER_DELETE_SYNC
+#
+# Linux commit v6.1-rc1-7-g9a5a30568697
+# timers: Get rid of del_singleshot_timer_sync()
+# Linux commit v6.1-rc1-11-g9b13df3fb64e
+# timers: Rename del_timer_sync() to timer_delete_sync()
+#
+AC_DEFUN([LIBCFS_SRC_TIMER_DELETE_SYNC],[
+ LB2_LINUX_TEST_SRC([timer_delete_sync], [
+ #include <linux/timer.h>
+ ],[
+ struct timer_list *timer = NULL;
+ (void)timer_delete_sync(timer);
+ ],[])
+])
+AC_DEFUN([LIBCFS_TIMER_DELETE_SYNC],[
+ AC_MSG_CHECKING([is timer_delete_sync() available])
+ LB2_LINUX_TEST_RESULT([timer_delete_sync], [
+ AC_DEFINE(HAVE_TIMER_DELETE_SYNC, 1,
+ [timer_delete_sync() is available])
+ ],[
+ AC_DEFINE(timer_delete_sync(t), del_timer_sync(t),
+ [timer_delete_sync() not is available])
+ ])
+]) # LIBCFS_TIMER_DELETE_SYNC
+
+#
+# LIBCFS_TIMER_DELETE_SYNC
+#
+# Linux commit v6.1-rc1-12-gbb663f0f3c39
+# timers: Rename del_timer() to timer_delete()
+#
+AC_DEFUN([LIBCFS_SRC_TIMER_DELETE],[
+ LB2_LINUX_TEST_SRC([timer_delete], [
+ #include <linux/timer.h>
+ ],[
+ struct timer_list *timer = NULL;
+ (void)timer_delete(timer);
+ ],[])
+])
+AC_DEFUN([LIBCFS_TIMER_DELETE],[
+ AC_MSG_CHECKING([is timer_delete() available])
+ LB2_LINUX_TEST_RESULT([timer_delete], [
+ AC_DEFINE(HAVE_TIMER_DELETE, 1,
+ [timer_delete() is available])
+ ],[
+ AC_DEFINE(timer_delete(t), del_timer(t),
+ [timer_delete() not is available])
+ ])
+]) # LIBCFS_TIMER_DELETE
+
dnl #
dnl # Generate and compile all of the kernel API test cases to determine
dnl # which interfaces are available. By invoking the kernel build system
# 5.17
LIBCFS_SRC_PDE_DATA_EXISTS
LIBCFS_SRC_BIO_ALLOC_WITH_BDEV
+ # 6.2
+ LIBCFS_SRC_TIMER_DELETE_SYNC
+ LIBCFS_SRC_TIMER_DELETE
LB2_LINUX_TEST_COMPILE_ALL([libcfs],
[for available kernel interfaces to libcfs])
# 5.17
LIBCFS_PDE_DATA_EXISTS
LIBCFS_BIO_ALLOC_WITH_BDEV
+ # 6.2
+ LIBCFS_TIMER_DELETE_SYNC
+ LIBCFS_TIMER_DELETE
])
#
CDEBUG(D_INFO, "awake after schedule\n");
}
- del_singleshot_timer_sync(&timer);
+ timer_delete_sync(&timer);
spin_lock(&kgnilnd_data.kgn_reaper_lock);
finish_wait(&kgnilnd_data.kgn_reaper_waitq, &wait);
continue;
/* if we think we need to adjust, take lock to serialize and recheck */
spin_lock(&dev->gnd_rdmaq_lock);
if (time_after_eq(jiffies, dev->gnd_rdmaq_deadline)) {
- del_singleshot_timer_sync(&dev->gnd_rdmaq_timer);
+ timer_delete_sync(&dev->gnd_rdmaq_timer);
dead_bump = cfs_time_seconds(1) / *kgnilnd_tunables.kgn_rdmaq_intervals;
spin_lock(&dev->gnd_lock);
if (list_empty(&dev->gnd_map_tx)) {
/* if the list is empty make sure we dont have a timer running */
- del_singleshot_timer_sync(&dev->gnd_map_timer);
+ timer_delete_sync(&dev->gnd_map_timer);
spin_unlock(&dev->gnd_lock);
RETURN(0);
}
}
/* delete the previous timer if it exists */
- del_singleshot_timer_sync(&dev->gnd_map_timer);
+ timer_delete_sync(&dev->gnd_map_timer);
/* stash the last map version to let us know when a good one was seen */
last_map_version = dev->gnd_map_version;
deadline = jiffies + cfs_time_seconds(*kgnilnd_tunables.kgn_dgram_timeout);
}
- del_singleshot_timer_sync(&timer.timer);
+ timer_delete_sync(&timer.timer);
finish_wait(&dev->gnd_dgram_waitq, &wait);
}
static bool kfilnd_tn_timeout_cancel(struct kfilnd_transaction *tn)
{
- return del_timer(&tn->timeout_timer);
+ return timer_delete(&tn->timeout_timer);
}
static void kfilnd_tn_timeout_enable(struct kfilnd_transaction *tn)
}
if (list_empty(&rule->dl_msg_list)) {
- del_timer(&rule->dl_timer);
+ timer_delete(&rule->dl_timer);
rule->dl_msg_send = -1;
} else if (!list_empty(msg_list)) {
list_for_each_entry_safe(rule, tmp, &rule_list, dl_link) {
list_del_init(&rule->dl_link);
- del_timer_sync(&rule->dl_timer);
+ timer_delete_sync(&rule->dl_timer);
delayed_msg_check(rule, true, &msg_list);
delay_rule_decref(rule); /* -1 for the_lnet.ln_delay_rules */
n++;
/* Removing the head of the list, adjust timer. */
if (list_next == &waiting_locks_list) {
/* No more, just cancel. */
- del_timer(&waiting_locks_timer);
+ timer_delete(&waiting_locks_timer);
} else {
time64_t now = ktime_get_seconds();
struct ldlm_lock *next;
/* Do actual allocation, use write lock here. */
rc = down_write_killable(&lod->lod_ost_descs.ltd_qos.lq_rw_sem);
- del_singleshot_timer_sync(&timer.timer);
+ timer_delete_sync(&timer.timer);
kernel_sigaction(SIGKILL, SIG_IGN);
if (rc) {
flush_signals(current);
/*
* no updates till reply
*/
- del_timer(&d->opd_statfs_timer);
+ timer_delete(&d->opd_statfs_timer);
d->opd_statfs_fresh_till = ktime_add_ns(ktime_get(), expire);
d->opd_statfs_update_in_progress = 1;
* is replied
*/
d->opd_statfs_fresh_till = ktime_sub_ns(ktime_get(), NSEC_PER_SEC);
- del_timer(&d->opd_statfs_timer);
+ timer_delete(&d->opd_statfs_timer);
wake_up(&d->opd_pre_waitq);
}
}
struct task_struct *task = d->opd_pre_task;
ENTRY;
- del_timer(&d->opd_statfs_timer);
+ timer_delete(&d->opd_statfs_timer);
d->opd_pre_task = NULL;
if (task)
CDEBUG(D_SEC, "ctx %p, key %p\n", ctx, gctx_kr->gck_key);
- del_singleshot_timer_sync(timer);
+ timer_delete_sync(timer);
}
static
time64_t next;
if (array->paa_count == 0) {
- del_timer(&svcpt->scp_at_timer);
+ timer_delete(&svcpt->scp_at_timer);
return;
}
/* early disarm AT timer... */
ptlrpc_service_for_each_part(svcpt, i, svc) {
if (svcpt->scp_service != NULL)
- del_timer(&svcpt->scp_at_timer);
+ timer_delete(&svcpt->scp_at_timer);
}
}
break;
/* In case somebody rearmed this in the meantime */
- del_timer(&svcpt->scp_at_timer);
+ timer_delete(&svcpt->scp_at_timer);
array = &svcpt->scp_at_array;
if (array->paa_reqs_array != NULL) {