From 4ed424280942f40b033d669eb9204a52e6d41639 Mon Sep 17 00:00:00 2001 From: Alexander Aring Date: Thu, 28 Mar 2024 11:48:39 -0400 Subject: dlm: save callback debug info earlier Save lkb callback info when queueing the callback so that the lkb struct is not needed in the callback workqueue processing. Signed-off-by: Alexander Aring Signed-off-by: David Teigland --- fs/dlm/ast.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'fs/dlm') diff --git a/fs/dlm/ast.c b/fs/dlm/ast.c index dd7cca3c1472..cadbcbe0786b 100644 --- a/fs/dlm/ast.c +++ b/fs/dlm/ast.c @@ -105,8 +105,13 @@ int dlm_enqueue_lkb_callback(struct dlm_lkb *lkb, uint32_t flags, int mode, list_add_tail(&cb->list, &lkb->lkb_callbacks); - if (flags & DLM_CB_CAST) + if (flags & DLM_CB_BAST) { + lkb->lkb_last_bast_time = ktime_get(); + lkb->lkb_last_bast_mode = cb->mode; + } else if (flags & DLM_CB_CAST) { dlm_callback_set_last_ptr(&lkb->lkb_last_cast, cb); + lkb->lkb_last_cast_time = ktime_get(); + } dlm_callback_set_last_ptr(&lkb->lkb_last_cb, cb); @@ -194,8 +199,6 @@ void dlm_callback_work(struct work_struct *work) trace_dlm_bast(ls->ls_global_id, lkb->lkb_id, cb->mode, rsb->res_name, rsb->res_length); - lkb->lkb_last_bast_time = ktime_get(); - lkb->lkb_last_bast_mode = cb->mode; bastfn(lkb->lkb_astparam, cb->mode); } else if (cb->flags & DLM_CB_CAST) { lkb->lkb_lksb->sb_status = cb->sb_status; @@ -203,7 +206,6 @@ void dlm_callback_work(struct work_struct *work) trace_dlm_ast(ls->ls_global_id, lkb->lkb_id, cb->sb_flags, cb->sb_status, rsb->res_name, rsb->res_length); - lkb->lkb_last_cast_time = ktime_get(); castfn(lkb->lkb_astparam); } -- cgit v1.2.3-70-g09d2