ocfs2: remove ocfs2_is_o2cb_active()
PATCH 1/11 ocfs2: remove ocfs2_is_o2cb_active()
From: Gang He <[email protected]>
Subject: ocfs2: remove ocfs2_is_o2cb_active()
Remove ocfs2_is_o2cb_active(). We have similar functions to identify which cluster stack is being used via osb->osb_cluster_stack.
Secondly, the current implementation of ocfs2_is_o2cb_active() is not totally safe. Based on the design of stackglue, we need to get ocfs2_stack_lock before using ocfs2_stack related data structures, and that active_stack pointer can be NULL in the case of mount failure.
---
fs/ocfs2/dlmglue.c | 2 +- fs/ocfs2/stackglue.c | 6 ------ fs/ocfs2/stackglue.h | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-)
fs/ocfs2/dlmglue.c renamed from fs/ocfs2/dlmglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +1 -1
@@ -3413,7 +3413,7 @@ static int ocfs2_downconvert_lock(struct* we can recover correctly from node failure. Otherwise, we may get * invalid LVB in LKB, but without DLM_SBF_VALNOTVALID?being set. */ -if (!ocfs2_is_o2cb_active () && +if (ocfs2_userspace_stack (osb) && lockres->l_ops->flags &LOCK_TYPE_USES_LVB ) lvb =1 ;
fs/ocfs2/stackglue.c renamed from fs/ocfs2/stackglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +0 -6
@@ -48,12 +48,6 @@ static char ocfs2_hb_ctl_path[OCFS2_MAX_*/ static struct ocfs2_stack_plugin *active_stack; -inline int ocfs2_is_o2cb_active (void ) -{ -return !strcmp (active_stack->sp_name,OCFS2_STACK_PLUGIN_O2CB ); -} -EXPORT_SYMBOL_GPL (ocfs2_is_o2cb_active); -static struct ocfs2_stack_plugin *ocfs2_stack_lookup (const char *name) {struct ocfs2_stack_plugin *p;
fs/ocfs2/stackglue.h renamed from fs/ocfs2/stackglue.h~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +0 -3
@@ -298,9 +298,6 @@ void ocfs2_stack_glue_set_max_proto_versint ocfs2_stack_glue_register (struct ocfs2_stack_plugin *plugin);void ocfs2_stack_glue_unregister (struct ocfs2_stack_plugin *plugin); -/* In ocfs2_downconvert_lock(), we need to know which stack we are using */ -int ocfs2_is_o2cb_active (void ); -extern struct kset *ocfs2_kset;#endif /* STACKGLUE_H */
_
PATCH 1/11 ocfs2: remove ocfs2_is_o2cb_active()
Quoted 74 lines · akpm at linux-foundation.org
From: Gang He <[email protected]>
Subject: ocfs2: removeocfs2_is_o2cb_active()Remove
ocfs2_is_o2cb_active(). We have similar functions to identify which cluster stack is being used viaosb->osb_cluster_stack.Secondly, the current implementation of
ocfs2_is_o2cb_active()is not totally safe. Based on the design of stackglue, we need to getocfs2_stack_lockbefore usingocfs2_stackrelated data structures, and thatactive_stackpointer can be NULL in the case of mount failure.Signed-off-by Gang He <[email protected]>Reviewed-by Joseph Qi <[email protected]>Reviewed-by Eric Ren <[email protected]>Cc Mark Fasheh <[email protected]>Cc Joel Becker <[email protected]>Cc Junxiao Bi <[email protected]>Signed-off-by Andrew Morton <[email protected]>---
fs/ocfs2/dlmglue.c | 2 +- fs/ocfs2/stackglue.c | 6 ------ fs/ocfs2/stackglue.h | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-)diff -puN
fs/ocfs2/dlmglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-functionfs/ocfs2/dlmglue.cfs/ocfs2/dlmglue.c renamed from fs/ocfs2/dlmglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +1
-1@@ -3413,7 +3413,7 @@ static int ocfs2_downconvert_lock(struct* we can recover correctly from node failure. Otherwise, we may get * invalid LVB in LKB, but without DLM_SBF_VALNOTVALID?being set. */ -if (!ocfs2_is_o2cb_active () && +if (ocfs2_userspace_stack (osb) && lockres->l_ops->flags &LOCK_TYPE_USES_LVB ) lvb =1 ;diff -puN
fs/ocfs2/stackglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-functionfs/ocfs2/stackglue.cfs/ocfs2/stackglue.c renamed from fs/ocfs2/stackglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +0
-6@@ -48,12 +48,6 @@ static char ocfs2_hb_ctl_path[OCFS2_MAX_*/ static struct ocfs2_stack_plugin *active_stack; -inline int ocfs2_is_o2cb_active (void ) -{ -return !strcmp (active_stack->sp_name,OCFS2_STACK_PLUGIN_O2CB ); -} -EXPORT_SYMBOL_GPL (ocfs2_is_o2cb_active); -static struct ocfs2_stack_plugin *ocfs2_stack_lookup (const char *name) {struct ocfs2_stack_plugin *p;diff -puN
fs/ocfs2/stackglue.h~ocfs2-get-rid-of-ocfs2_is_o2cb_active-functionfs/ocfs2/stackglue.hfs/ocfs2/stackglue.h renamed from fs/ocfs2/stackglue.h~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +0
-3@@ -298,9 +298,6 @@ void ocfs2_stack_glue_set_max_proto_versint ocfs2_stack_glue_register (struct ocfs2_stack_plugin *plugin);void ocfs2_stack_glue_unregister (struct ocfs2_stack_plugin *plugin); -/* In ocfs2_downconvert_lock(), we need to know which stack we are using */ -int ocfs2_is_o2cb_active (void ); -extern struct kset *ocfs2_kset;#endif /* STACKGLUE_H */ _
_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel at oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel
PATCH 1/11 ocfs2: remove ocfs2_is_o2cb_active()
In reply to akpm at linux-foundation.orgQuoted 76 lines · akpm at linux-foundation.org
From: Gang He <[email protected]>
Subject: ocfs2: removeocfs2_is_o2cb_active()Remove
ocfs2_is_o2cb_active(). We have similar functions to identify which cluster stack is being used viaosb->osb_cluster_stack.Secondly, the current implementation of
ocfs2_is_o2cb_active()is not totally safe. Based on the design of stackglue, we need to getocfs2_stack_lockbefore usingocfs2_stackrelated data structures, and thatactive_stackpointer can be NULL in the case of mount failure.Signed-off-by Gang He <[email protected]>Reviewed-by Joseph Qi <[email protected]>Reviewed-by Eric Ren <[email protected]>Cc Mark Fasheh <[email protected]>Cc Joel Becker <[email protected]>Cc Junxiao Bi <[email protected]>Signed-off-by Andrew Morton <[email protected]>---
fs/ocfs2/dlmglue.c | 2 +- fs/ocfs2/stackglue.c | 6 ------ fs/ocfs2/stackglue.h | 3 --- 3 files changed, 1 insertion(+), 10 deletions(-)diff -puN
fs/ocfs2/dlmglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-functionfs/ocfs2/dlmglue.cfs/ocfs2/dlmglue.c renamed from fs/ocfs2/dlmglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +1
-1@@ -3413,7 +3413,7 @@ static int ocfs2_downconvert_lock(struct* we can recover correctly from node failure. Otherwise, we may get * invalid LVB in LKB, but without DLM_SBF_VALNOTVALID being set. */ -if (!ocfs2_is_o2cb_active () && +if (ocfs2_userspace_stack (osb) && lockres->l_ops->flags &LOCK_TYPE_USES_LVB ) lvb =1 ;diff -puN
fs/ocfs2/stackglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-functionfs/ocfs2/stackglue.cfs/ocfs2/stackglue.c renamed from fs/ocfs2/stackglue.c~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +0
-6@@ -48,12 +48,6 @@ static char ocfs2_hb_ctl_path[OCFS2_MAX_*/ static struct ocfs2_stack_plugin *active_stack; -inline int ocfs2_is_o2cb_active (void ) -{ -return !strcmp (active_stack->sp_name,OCFS2_STACK_PLUGIN_O2CB ); -} -EXPORT_SYMBOL_GPL (ocfs2_is_o2cb_active); -static struct ocfs2_stack_plugin *ocfs2_stack_lookup (const char *name) {struct ocfs2_stack_plugin *p;diff -puN
fs/ocfs2/stackglue.h~ocfs2-get-rid-of-ocfs2_is_o2cb_active-functionfs/ocfs2/stackglue.hfs/ocfs2/stackglue.h renamed from fs/ocfs2/stackglue.h~ocfs2-get-rid-of-ocfs2_is_o2cb_active-function +0
-3@@ -298,9 +298,6 @@ void ocfs2_stack_glue_set_max_proto_versint ocfs2_stack_glue_register (struct ocfs2_stack_plugin *plugin);void ocfs2_stack_glue_unregister (struct ocfs2_stack_plugin *plugin); -/* In ocfs2_downconvert_lock(), we need to know which stack we are using */ -int ocfs2_is_o2cb_active (void ); -extern struct kset *ocfs2_kset;#endif /* STACKGLUE_H */ _
_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel at oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel.