[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