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>
This commit is contained in:
@@ -2641,7 +2641,7 @@ int ocfs2_dlm_init(struct ocfs2_super *osb)
|
||||
mlog_errno(status);
|
||||
mlog(ML_ERROR,
|
||||
"could not find this host's node number\n");
|
||||
ocfs2_cluster_disconnect(conn);
|
||||
ocfs2_cluster_disconnect(conn, 0);
|
||||
goto bail;
|
||||
}
|
||||
|
||||
@@ -2663,7 +2663,8 @@ bail:
|
||||
return status;
|
||||
}
|
||||
|
||||
void ocfs2_dlm_shutdown(struct ocfs2_super *osb)
|
||||
void ocfs2_dlm_shutdown(struct ocfs2_super *osb,
|
||||
int hangup_pending)
|
||||
{
|
||||
mlog_entry_void();
|
||||
|
||||
@@ -2683,7 +2684,7 @@ void ocfs2_dlm_shutdown(struct ocfs2_super *osb)
|
||||
ocfs2_lock_res_free(&osb->osb_super_lockres);
|
||||
ocfs2_lock_res_free(&osb->osb_rename_lockres);
|
||||
|
||||
ocfs2_cluster_disconnect(osb->cconn);
|
||||
ocfs2_cluster_disconnect(osb->cconn, hangup_pending);
|
||||
osb->cconn = NULL;
|
||||
|
||||
ocfs2_dlm_shutdown_debug(osb);
|
||||
|
Reference in New Issue
Block a user