aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dlmglue.c
diff options
context:
space:
mode:
authorJoel Becker <joel.becker@oracle.com>2008-02-01 18:03:57 -0500
committerMark Fasheh <mfasheh@suse.com>2008-04-18 11:56:05 -0400
commit286eaa95c5c5915a6b72cc3f0a2534161fd7928b (patch)
treedce03b619389cc5b5e2508b30ca3e1411401cf4e /fs/ocfs2/dlmglue.c
parente3dad42bf993a0f24eb6e46152356c9b119c15e8 (diff)
ocfs2: Break out stackglue into modules.
We define the ocfs2_stack_plugin structure to represent a stack driver. The o2cb stack code is split into stack_o2cb.c. This becomes the ocfs2_stack_o2cb.ko module. The stackglue generic functions are similarly split into the ocfs2_stackglue.ko module. This module now provides an interface to register drivers. The ocfs2_stack_o2cb driver registers itself. As part of this interface, ocfs2_stackglue can load drivers on demand. This is accomplished in ocfs2_cluster_connect(). ocfs2_cluster_disconnect() is now notified when a _hangup() is pending. If a hangup is pending, it will not release the driver module and will let _hangup() do that. Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/dlmglue.c')
-rw-r--r--fs/ocfs2/dlmglue.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index 8a9c84909be3..f62a9e4fc315 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -2641,7 +2641,7 @@ int ocfs2_dlm_init(struct ocfs2_super *osb)
2641 mlog_errno(status); 2641 mlog_errno(status);
2642 mlog(ML_ERROR, 2642 mlog(ML_ERROR,
2643 "could not find this host's node number\n"); 2643 "could not find this host's node number\n");
2644 ocfs2_cluster_disconnect(conn); 2644 ocfs2_cluster_disconnect(conn, 0);
2645 goto bail; 2645 goto bail;
2646 } 2646 }
2647 2647
@@ -2663,7 +2663,8 @@ bail:
2663 return status; 2663 return status;
2664} 2664}
2665 2665
2666void ocfs2_dlm_shutdown(struct ocfs2_super *osb) 2666void ocfs2_dlm_shutdown(struct ocfs2_super *osb,
2667 int hangup_pending)
2667{ 2668{
2668 mlog_entry_void(); 2669 mlog_entry_void();
2669 2670
@@ -2683,7 +2684,7 @@ void ocfs2_dlm_shutdown(struct ocfs2_super *osb)
2683 ocfs2_lock_res_free(&osb->osb_super_lockres); 2684 ocfs2_lock_res_free(&osb->osb_super_lockres);
2684 ocfs2_lock_res_free(&osb->osb_rename_lockres); 2685 ocfs2_lock_res_free(&osb->osb_rename_lockres);
2685 2686
2686 ocfs2_cluster_disconnect(osb->cconn); 2687 ocfs2_cluster_disconnect(osb->cconn, hangup_pending);
2687 osb->cconn = NULL; 2688 osb->cconn = NULL;
2688 2689
2689 ocfs2_dlm_shutdown_debug(osb); 2690 ocfs2_dlm_shutdown_debug(osb);