[Ocfs2-commits] khackel commits r1928 - branches/dlm-reco-mig/fs/ocfs2/dlm

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Mar 1 16:08:19 CST 2005


Author: khackel
Date: 2005-03-01 16:08:18 -0600 (Tue, 01 Mar 2005)
New Revision: 1928

Modified:
   branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c
   branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmod.h
Log:
* change dlm_do_assert_master to allow it to be called with an arbitrary
  lock name and node map


Modified: branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c
===================================================================
--- branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c	2005-03-01 19:41:23 UTC (rev 1927)
+++ branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c	2005-03-01 22:08:18 UTC (rev 1928)
@@ -62,7 +62,6 @@
 			char *name, unsigned int namelen);
 
 static int dlm_do_master_request(dlm_master_list_entry *mle, int to);
-static int dlm_do_assert_master(dlm_master_list_entry *mle);
 
 static dlm_lock_resource *dlm_new_lockres(dlm_ctxt *dlm,
 					  const char *name,
@@ -626,7 +625,8 @@
 	ret = 0;   /* done */	
 	if (assert) {
 		m = dlm->group_index;
-		ret = dlm_do_assert_master(mle);
+		ret = dlm_do_assert_master(dlm, res->lockname.name, 
+					   res->lockname.len, mle->vote_map);
 		if (ret) {
 			dlmprintk("dlm_do_assert_master returned %d!\n",
 				  ret);
@@ -895,27 +895,22 @@
  * can periodically run all locks owned by this node
  * and re-assert across the cluster...
  */
-static int dlm_do_assert_master(dlm_master_list_entry *mle)
+int dlm_do_assert_master(dlm_ctxt *dlm, const char *lockname, 
+			 unsigned int namelen, void *nodemap)
 {
 	struct inode *inode = NULL;
-	dlm_ctxt *dlm = mle->dlm;
 	dlm_assert_master assert;
-	int to, ret = 0, tmpret;
+	int to, tmpret;
 	dlm_node_iter iter;
+	int ret = 0;
 
-	dlm_node_iter_init(mle->vote_map, &iter);
+	dlm_node_iter_init(nodemap, &iter);
 	while ((to = dlm_node_iter_next(&iter)) >= 0) {
 		// dlmprintk("sending assert master to %d\n", to);
 		memset(&assert, 0, sizeof(assert));
 		assert.node_idx = dlm->group_index;
-		if (mle->type == DLM_MLE_BLOCK) {
-			assert.namelen = mle->u.name.len;
-			strncpy(assert.name, mle->u.name.name, assert.namelen);
-		} else {
-			assert.namelen = mle->u.res->lockname.len;
-			strncpy(assert.name, mle->u.res->lockname.name, 
-				assert.namelen);
-		}
+		assert.namelen = namelen;
+		strncpy(assert.name, lockname, namelen);
 
 		inode = nm_get_group_node_by_index(dlm->group, to);
 		if (!inode) {

Modified: branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmod.h
===================================================================
--- branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmod.h	2005-03-01 19:41:23 UTC (rev 1927)
+++ branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmod.h	2005-03-01 22:08:18 UTC (rev 1928)
@@ -676,6 +676,8 @@
 		       struct inode *group, struct inode *node, int idx);
 void dlm_mle_node_up(dlm_ctxt *dlm, dlm_master_list_entry *mle,
 		       struct inode *group, struct inode *node, int idx);
+int dlm_do_assert_master(dlm_ctxt *dlm, const char *lockname, 
+			 unsigned int namelen, void *nodemap);
 
 
 static inline const char * dlm_lock_mode_name(int mode)



More information about the Ocfs2-commits mailing list