aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ocfs2')
-rw-r--r--fs/ocfs2/dlm/dlmcommon.h5
-rw-r--r--fs/ocfs2/dlm/dlmdebug.c12
-rw-r--r--fs/ocfs2/dlm/dlmdomain.c5
-rw-r--r--fs/ocfs2/dlm/dlmmaster.c27
4 files changed, 11 insertions, 38 deletions
diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h
index 67b3447a292e..e5026ce862ad 100644
--- a/fs/ocfs2/dlm/dlmcommon.h
+++ b/fs/ocfs2/dlm/dlmcommon.h
@@ -159,9 +159,8 @@ struct dlm_ctxt
159 /* these give a really vague idea of the system load */ 159 /* these give a really vague idea of the system load */
160 atomic_t mle_tot_count[DLM_MLE_NUM_TYPES]; 160 atomic_t mle_tot_count[DLM_MLE_NUM_TYPES];
161 atomic_t mle_cur_count[DLM_MLE_NUM_TYPES]; 161 atomic_t mle_cur_count[DLM_MLE_NUM_TYPES];
162 atomic_t local_resources; 162 atomic_t res_tot_count;
163 atomic_t remote_resources; 163 atomic_t res_cur_count;
164 atomic_t unknown_resources;
165 164
166 struct dlm_debug_ctxt *dlm_debug_ctxt; 165 struct dlm_debug_ctxt *dlm_debug_ctxt;
167 struct dentry *dlm_debugfs_subroot; 166 struct dentry *dlm_debugfs_subroot;
diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c
index 336a98e82eba..d7decaa687e6 100644
--- a/fs/ocfs2/dlm/dlmdebug.c
+++ b/fs/ocfs2/dlm/dlmdebug.c
@@ -763,12 +763,6 @@ static int debug_state_print(struct dlm_ctxt *dlm, struct debug_buffer *db)
763 int out = 0; 763 int out = 0;
764 struct dlm_reco_node_data *node; 764 struct dlm_reco_node_data *node;
765 char *state; 765 char *state;
766 int lres, rres, ures, tres;
767
768 lres = atomic_read(&dlm->local_resources);
769 rres = atomic_read(&dlm->remote_resources);
770 ures = atomic_read(&dlm->unknown_resources);
771 tres = lres + rres + ures;
772 766
773 spin_lock(&dlm->spinlock); 767 spin_lock(&dlm->spinlock);
774 768
@@ -811,12 +805,6 @@ static int debug_state_print(struct dlm_ctxt *dlm, struct debug_buffer *db)
811 db->buf + out, db->len - out); 805 db->buf + out, db->len - out);
812 out += snprintf(db->buf + out, db->len - out, "\n"); 806 out += snprintf(db->buf + out, db->len - out, "\n");
813 807
814 /* Mastered Resources Total: xxx Locally: xxx Remotely: ... */
815 out += snprintf(db->buf + out, db->len - out,
816 "Mastered Resources Total: %d Locally: %d "
817 "Remotely: %d Unknown: %d\n",
818 tres, lres, rres, ures);
819
820 /* Lists: Dirty=Empty Purge=InUse PendingASTs=Empty ... */ 808 /* Lists: Dirty=Empty Purge=InUse PendingASTs=Empty ... */
821 out += snprintf(db->buf + out, db->len - out, 809 out += snprintf(db->buf + out, db->len - out,
822 "Lists: Dirty=%s Purge=%s PendingASTs=%s " 810 "Lists: Dirty=%s Purge=%s PendingASTs=%s "
diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c
index 0479bdf91c2b..4d9e6b288dd8 100644
--- a/fs/ocfs2/dlm/dlmdomain.c
+++ b/fs/ocfs2/dlm/dlmdomain.c
@@ -1604,10 +1604,9 @@ static struct dlm_ctxt *dlm_alloc_ctxt(const char *domain,
1604 1604
1605 dlm->reco.new_master = O2NM_INVALID_NODE_NUM; 1605 dlm->reco.new_master = O2NM_INVALID_NODE_NUM;
1606 dlm->reco.dead_node = O2NM_INVALID_NODE_NUM; 1606 dlm->reco.dead_node = O2NM_INVALID_NODE_NUM;
1607 atomic_set(&dlm->local_resources, 0);
1608 atomic_set(&dlm->remote_resources, 0);
1609 atomic_set(&dlm->unknown_resources, 0);
1610 1607
1608 atomic_set(&dlm->res_tot_count, 0);
1609 atomic_set(&dlm->res_cur_count, 0);
1611 for (i = 0; i < DLM_MLE_NUM_TYPES; ++i) { 1610 for (i = 0; i < DLM_MLE_NUM_TYPES; ++i) {
1612 atomic_set(&dlm->mle_tot_count[i], 0); 1611 atomic_set(&dlm->mle_tot_count[i], 0);
1613 atomic_set(&dlm->mle_cur_count[i], 0); 1612 atomic_set(&dlm->mle_cur_count[i], 0);
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
index acfc9288d5cd..d70cdd51de0f 100644
--- a/fs/ocfs2/dlm/dlmmaster.c
+++ b/fs/ocfs2/dlm/dlmmaster.c
@@ -517,15 +517,6 @@ static void dlm_set_lockres_owner(struct dlm_ctxt *dlm,
517{ 517{
518 assert_spin_locked(&res->spinlock); 518 assert_spin_locked(&res->spinlock);
519 519
520 mlog_entry("%.*s, %u\n", res->lockname.len, res->lockname.name, owner);
521
522 if (owner == dlm->node_num)
523 atomic_inc(&dlm->local_resources);
524 else if (owner == DLM_LOCK_RES_OWNER_UNKNOWN)
525 atomic_inc(&dlm->unknown_resources);
526 else
527 atomic_inc(&dlm->remote_resources);
528
529 res->owner = owner; 520 res->owner = owner;
530} 521}
531 522
@@ -534,17 +525,8 @@ void dlm_change_lockres_owner(struct dlm_ctxt *dlm,
534{ 525{
535 assert_spin_locked(&res->spinlock); 526 assert_spin_locked(&res->spinlock);
536 527
537 if (owner == res->owner) 528 if (owner != res->owner)
538 return; 529 dlm_set_lockres_owner(dlm, res, owner);
539
540 if (res->owner == dlm->node_num)
541 atomic_dec(&dlm->local_resources);
542 else if (res->owner == DLM_LOCK_RES_OWNER_UNKNOWN)
543 atomic_dec(&dlm->unknown_resources);
544 else
545 atomic_dec(&dlm->remote_resources);
546
547 dlm_set_lockres_owner(dlm, res, owner);
548} 530}
549 531
550 532
@@ -573,6 +555,8 @@ static void dlm_lockres_release(struct kref *kref)
573 } 555 }
574 spin_unlock(&dlm->track_lock); 556 spin_unlock(&dlm->track_lock);
575 557
558 atomic_dec(&dlm->res_cur_count);
559
576 dlm_put(dlm); 560 dlm_put(dlm);
577 561
578 if (!hlist_unhashed(&res->hash_node) || 562 if (!hlist_unhashed(&res->hash_node) ||
@@ -653,6 +637,9 @@ static void dlm_init_lockres(struct dlm_ctxt *dlm,
653 637
654 kref_init(&res->refs); 638 kref_init(&res->refs);
655 639
640 atomic_inc(&dlm->res_tot_count);
641 atomic_inc(&dlm->res_cur_count);
642
656 /* just for consistency */ 643 /* just for consistency */
657 spin_lock(&res->spinlock); 644 spin_lock(&res->spinlock);
658 dlm_set_lockres_owner(dlm, res, DLM_LOCK_RES_OWNER_UNKNOWN); 645 dlm_set_lockres_owner(dlm, res, DLM_LOCK_RES_OWNER_UNKNOWN);