public inbox for gfs2@lists.linux.dev
 help / color / mirror / Atom feed
From: Alexander Aring <aahringo@redhat.com>
To: teigland@redhat.com
Cc: gfs2@lists.linux.dev, aahringo@redhat.com
Subject: [RFC v6.8-rc6 4/7] dlm: move lkb debug information out of callback
Date: Fri,  8 Mar 2024 11:18:15 -0500	[thread overview]
Message-ID: <20240308161818.2388451-5-aahringo@redhat.com> (raw)
In-Reply-To: <20240308161818.2388451-1-aahringo@redhat.com>

This patch removes per lkb callback debug information to the
functionality when we queue the callback. As we need to remove any lkb
reference in the callback handling this functionality will be move to an
earlier point of execution. It is so far only used for debugging and the
exact timing doesn't matter.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
---
 fs/dlm/ast.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/fs/dlm/ast.c b/fs/dlm/ast.c
index 76e1e3886076..ee9b27646682 100644
--- a/fs/dlm/ast.c
+++ b/fs/dlm/ast.c
@@ -107,8 +107,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);
 
@@ -196,8 +201,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;
@@ -205,7 +208,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);
 		}
 
-- 
2.43.0


  parent reply	other threads:[~2024-03-08 16:18 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-08 16:18 [RFC v6.8-rc6 0/7] dlm: fix race between callback and remove message Alexander Aring
2024-03-08 16:18 ` [RFC v6.8-rc6 1/7] dlm: fix user space lock decision to copy lvb Alexander Aring
2024-03-10 14:27   ` Alexander Aring
2024-03-08 16:18 ` [RFC v6.8-rc6 2/7] dlm: remove lkb from ast bast tracepoints Alexander Aring
2024-03-08 16:18 ` [RFC v6.8-rc6 3/7] dlm: remove callback queue debugfs functionality Alexander Aring
2024-03-08 16:18 ` Alexander Aring [this message]
2024-03-08 16:18 ` [RFC v6.8-rc6 5/7] dlm: combine switch case fail and default statements Alexander Aring
2024-03-08 16:18 ` [RFC v6.8-rc6 6/7] dlm: fix race between final callback and remove Alexander Aring
2024-03-08 16:30   ` Alexander Aring
2024-03-13 13:46   ` Alexander Aring
2024-03-08 16:18 ` [RFC v6.8-rc6 7/7] dlm: remove callback reference counting Alexander Aring
2024-03-10 14:25   ` Alexander Aring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240308161818.2388451-5-aahringo@redhat.com \
    --to=aahringo@redhat.com \
    --cc=gfs2@lists.linux.dev \
    --cc=teigland@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox