]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dlm: remove unnecessary refcounts
authorAlexander Aring <aahringo@redhat.com>
Fri, 2 Aug 2024 17:26:39 +0000 (13:26 -0400)
committerDavid Teigland <teigland@redhat.com>
Thu, 8 Aug 2024 20:14:42 +0000 (15:14 -0500)
This patch removes unnecessary refcounts that are obviously not
necessary because either when the pointer is passed as parameter or it
is part of a list we should already hold a reference to it.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lock.c

index 6930d7c57216b5414b51b80f2528710c63ae1dad..720715ddaf486ceaa5519796cb33267b1b8e9f4f 100644 (file)
@@ -1442,18 +1442,6 @@ static void deactivate_rsb(struct kref *kref)
        }
 }
 
-/* See comment for unhold_lkb */
-
-static void unhold_rsb(struct dlm_rsb *r)
-{
-       int rv;
-
-       /* inactive rsbs are not ref counted */
-       WARN_ON(rsb_flag(r, RSB_INACTIVE));
-       rv = kref_put(&r->res_ref, deactivate_rsb);
-       DLM_ASSERT(!rv, dlm_dump_rsb(r););
-}
-
 void free_inactive_rsb(struct dlm_rsb *r)
 {
        WARN_ON_ONCE(!rsb_flag(r, RSB_INACTIVE));
@@ -1675,10 +1663,8 @@ static void del_lkb(struct dlm_rsb *r, struct dlm_lkb *lkb)
 
 static void move_lkb(struct dlm_rsb *r, struct dlm_lkb *lkb, int sts)
 {
-       hold_lkb(lkb);
        del_lkb(r, lkb);
        add_lkb(r, lkb, sts);
-       unhold_lkb(lkb);
 }
 
 static int msg_reply_type(int mstype)
@@ -5409,7 +5395,6 @@ void dlm_recover_purge(struct dlm_ls *ls, const struct list_head *root_list)
                return;
 
        list_for_each_entry(r, root_list, res_root_list) {
-               hold_rsb(r);
                lock_rsb(r);
                if (is_master(r)) {
                        purge_dead_list(ls, r, &r->res_grantqueue,
@@ -5420,7 +5405,7 @@ void dlm_recover_purge(struct dlm_ls *ls, const struct list_head *root_list)
                                        nodeid_gone, &lkb_count);
                }
                unlock_rsb(r);
-               unhold_rsb(r);
+
                cond_resched();
        }