aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dlm/dlmrecovery.c
diff options
context:
space:
mode:
authorKurt Hackel <kurt.hackel@oracle.com>2007-01-17 20:04:25 -0500
committerMark Fasheh <mark.fasheh@oracle.com>2007-02-07 15:06:56 -0500
commitd74c9803a90d733f5fb7270475aa6d14b45796c6 (patch)
tree7f402437667103773cfe7d76b56a621183e84094 /fs/ocfs2/dlm/dlmrecovery.c
parent74aa25856c693d20a886cdb31a004aaca411d135 (diff)
ocfs2: Added post handler callable function in o2net message handler
Currently o2net allows one handler function per message type. This patch adds the ability to call another function to be called after the handler has returned the message to the other node. Handlers are now given the option of returning a context (in the form of a void **) which will be passed back into the post message handler function. Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com> Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/dlm/dlmrecovery.c')
-rw-r--r--fs/ocfs2/dlm/dlmrecovery.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c
index 38d714645309..6d4a83d50152 100644
--- a/fs/ocfs2/dlm/dlmrecovery.c
+++ b/fs/ocfs2/dlm/dlmrecovery.c
@@ -818,7 +818,8 @@ static int dlm_request_all_locks(struct dlm_ctxt *dlm, u8 request_from,
818 818
819} 819}
820 820
821int dlm_request_all_locks_handler(struct o2net_msg *msg, u32 len, void *data) 821int dlm_request_all_locks_handler(struct o2net_msg *msg, u32 len, void *data,
822 void **ret_data)
822{ 823{
823 struct dlm_ctxt *dlm = data; 824 struct dlm_ctxt *dlm = data;
824 struct dlm_lock_request *lr = (struct dlm_lock_request *)msg->buf; 825 struct dlm_lock_request *lr = (struct dlm_lock_request *)msg->buf;
@@ -975,7 +976,8 @@ static int dlm_send_all_done_msg(struct dlm_ctxt *dlm, u8 dead_node, u8 send_to)
975} 976}
976 977
977 978
978int dlm_reco_data_done_handler(struct o2net_msg *msg, u32 len, void *data) 979int dlm_reco_data_done_handler(struct o2net_msg *msg, u32 len, void *data,
980 void **ret_data)
979{ 981{
980 struct dlm_ctxt *dlm = data; 982 struct dlm_ctxt *dlm = data;
981 struct dlm_reco_data_done *done = (struct dlm_reco_data_done *)msg->buf; 983 struct dlm_reco_data_done *done = (struct dlm_reco_data_done *)msg->buf;
@@ -1331,7 +1333,8 @@ error:
1331 * do we spin? returning an error only delays the problem really 1333 * do we spin? returning an error only delays the problem really
1332 */ 1334 */
1333 1335
1334int dlm_mig_lockres_handler(struct o2net_msg *msg, u32 len, void *data) 1336int dlm_mig_lockres_handler(struct o2net_msg *msg, u32 len, void *data,
1337 void **ret_data)
1335{ 1338{
1336 struct dlm_ctxt *dlm = data; 1339 struct dlm_ctxt *dlm = data;
1337 struct dlm_migratable_lockres *mres = 1340 struct dlm_migratable_lockres *mres =
@@ -1624,7 +1627,8 @@ int dlm_do_master_requery(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
1624/* this function cannot error, so unless the sending 1627/* this function cannot error, so unless the sending
1625 * or receiving of the message failed, the owner can 1628 * or receiving of the message failed, the owner can
1626 * be trusted */ 1629 * be trusted */
1627int dlm_master_requery_handler(struct o2net_msg *msg, u32 len, void *data) 1630int dlm_master_requery_handler(struct o2net_msg *msg, u32 len, void *data,
1631 void **ret_data)
1628{ 1632{
1629 struct dlm_ctxt *dlm = data; 1633 struct dlm_ctxt *dlm = data;
1630 struct dlm_master_requery *req = (struct dlm_master_requery *)msg->buf; 1634 struct dlm_master_requery *req = (struct dlm_master_requery *)msg->buf;
@@ -2600,7 +2604,8 @@ retry:
2600 return ret; 2604 return ret;
2601} 2605}
2602 2606
2603int dlm_begin_reco_handler(struct o2net_msg *msg, u32 len, void *data) 2607int dlm_begin_reco_handler(struct o2net_msg *msg, u32 len, void *data,
2608 void **ret_data)
2604{ 2609{
2605 struct dlm_ctxt *dlm = data; 2610 struct dlm_ctxt *dlm = data;
2606 struct dlm_begin_reco *br = (struct dlm_begin_reco *)msg->buf; 2611 struct dlm_begin_reco *br = (struct dlm_begin_reco *)msg->buf;
@@ -2728,7 +2733,8 @@ stage2:
2728 return ret; 2733 return ret;
2729} 2734}
2730 2735
2731int dlm_finalize_reco_handler(struct o2net_msg *msg, u32 len, void *data) 2736int dlm_finalize_reco_handler(struct o2net_msg *msg, u32 len, void *data,
2737 void **ret_data)
2732{ 2738{
2733 struct dlm_ctxt *dlm = data; 2739 struct dlm_ctxt *dlm = data;
2734 struct dlm_finalize_reco *fr = (struct dlm_finalize_reco *)msg->buf; 2740 struct dlm_finalize_reco *fr = (struct dlm_finalize_reco *)msg->buf;