diff options
author | Joel Becker <joel.becker@oracle.com> | 2008-02-01 17:39:35 -0500 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-04-18 11:56:04 -0400 |
commit | 4670c46ded9a18268d1265417ff4ac72145a7917 (patch) | |
tree | 4f70822ddee389a9c8ed572b215a3355c20db3a1 /fs/ocfs2/ocfs2.h | |
parent | 8f2c9c1b16bf6ed0903b29c49d56fa0109a390e4 (diff) |
ocfs2: Introduce the new ocfs2_cluster_connect/disconnect() API.
This step introduces a cluster stack agnostic API for initializing and
exiting. fs/ocfs2/dlmglue.c no longer uses o2cb/o2dlm knowledge to
connect to the stack. It is all handled in stackglue.c.
heartbeat.c no longer needs to know how it gets called.
ocfs2_do_node_down() is now a clean recovery trigger.
The big gotcha is the ordering of initializations and de-initializations done
underneath ocfs2_cluster_connect(). ocfs2_dlm_init() used to do all
o2dlm initialization in one block. Thus, the o2dlm functionality of
ocfs2_cluster_connect() is very straightforward. ocfs2_dlm_shutdown(),
however, did a few things between de-registration of the eviction
callback and actually shutting down the domain. Now de-registration and
shutdown of the domain are wrapped within the single
ocfs2_cluster_disconnect() call. I've checked the code paths to make
sure we can safely tear down things in ocfs2_dlm_shutdown() before
calling ocfs2_cluster_disconnect(). The filesystem has already set
itself to ignore the callback.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/ocfs2.h')
-rw-r--r-- | fs/ocfs2/ocfs2.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h index 6d7c6d2d0c23..664e4fe3eab5 100644 --- a/fs/ocfs2/ocfs2.h +++ b/fs/ocfs2/ocfs2.h | |||
@@ -248,12 +248,10 @@ struct ocfs2_super | |||
248 | struct ocfs2_alloc_stats alloc_stats; | 248 | struct ocfs2_alloc_stats alloc_stats; |
249 | char dev_str[20]; /* "major,minor" of the device */ | 249 | char dev_str[20]; /* "major,minor" of the device */ |
250 | 250 | ||
251 | struct dlm_ctxt *dlm; | 251 | struct ocfs2_cluster_connection *cconn; |
252 | struct ocfs2_lock_res osb_super_lockres; | 252 | struct ocfs2_lock_res osb_super_lockres; |
253 | struct ocfs2_lock_res osb_rename_lockres; | 253 | struct ocfs2_lock_res osb_rename_lockres; |
254 | struct dlm_eviction_cb osb_eviction_cb; | ||
255 | struct ocfs2_dlm_debug *osb_dlm_debug; | 254 | struct ocfs2_dlm_debug *osb_dlm_debug; |
256 | struct dlm_protocol_version osb_locking_proto; | ||
257 | 255 | ||
258 | struct dentry *osb_debug_root; | 256 | struct dentry *osb_debug_root; |
259 | 257 | ||