[v3,1/4] ocfs2: export ocfs2_kset for online file check
diff mbox

Message ID 1451027779-6849-2-git-send-email-ghe@suse.com
State New
Headers show

Commit Message

Gang He Dec. 25, 2015, 7:16 a.m. UTC
Export ocfs2_kset object from ocfs2_stackglue kernel module,
then online file check code will create the related sysfiles
under ocfs2_kset object.

Signed-off-by: Gang He <ghe@suse.com>
---
 fs/ocfs2/stackglue.c | 3 ++-
 fs/ocfs2/stackglue.h | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

Comments

Andrew Morton Dec. 29, 2015, 9:38 p.m. UTC | #1
On Fri, 25 Dec 2015 15:16:16 +0800 Gang He <ghe@suse.com> wrote:

> Export ocfs2_kset object from ocfs2_stackglue kernel module,
> then online file check code will create the related sysfiles
> under ocfs2_kset object.
> 
> ...
>
> --- a/fs/ocfs2/stackglue.c
> +++ b/fs/ocfs2/stackglue.c
> @@ -629,7 +629,8 @@ static struct attribute_group ocfs2_attr_group = {
>  	.attrs = ocfs2_attrs,
>  };
>  
> -static struct kset *ocfs2_kset;
> +struct kset *ocfs2_kset;
> +EXPORT_SYMBOL_GPL(ocfs2_kset);

The EXPORT_SYMBOL is only needed if this symbol is to be referred to
from a different module.  That isn't the case here - everything which
refers to ocfs2_kset is linked into ocfs2.ko, correct?
Gang He Dec. 30, 2015, 6:13 a.m. UTC | #2
Hello Andrew,


>>> 
> On Fri, 25 Dec 2015 15:16:16 +0800 Gang He <ghe@suse.com> wrote:
> 
>> Export ocfs2_kset object from ocfs2_stackglue kernel module,
>> then online file check code will create the related sysfiles
>> under ocfs2_kset object.
>> 
>> ...
>>
>> --- a/fs/ocfs2/stackglue.c
>> +++ b/fs/ocfs2/stackglue.c
>> @@ -629,7 +629,8 @@ static struct attribute_group ocfs2_attr_group = {
>>  	.attrs = ocfs2_attrs,
>>  };
>>  
>> -static struct kset *ocfs2_kset;
>> +struct kset *ocfs2_kset;
>> +EXPORT_SYMBOL_GPL(ocfs2_kset);
> 
> The EXPORT_SYMBOL is only needed if this symbol is to be referred to
> from a different module.  That isn't the case here - everything which
> refers to ocfs2_kset is linked into ocfs2.ko, correct?
There are some kernel modules (Not single KO file) for OCFS2 file system, the variable ocfs2_kset is located in ocfs2_stackglue.ko kernel module,
if the main kernel module ocfs2.ko wants to refer to this variable, it looks to have to export this symbol? 

Thanks
Gang
Mark Fasheh Jan. 13, 2016, 11:02 p.m. UTC | #3
On Fri, Dec 25, 2015 at 03:16:16PM +0800, Gang He wrote:
> Export ocfs2_kset object from ocfs2_stackglue kernel module,
> then online file check code will create the related sysfiles
> under ocfs2_kset object.
> 
> Signed-off-by: Gang He <ghe@suse.com>

Reviewed-by: Mark Fasheh <mfasheh@suse.de>

This was easy to review, though you might consider adding a note that we're
exporting this because it's built in ocfs2_stackglue.ko.
	--Mark


> ---
>  fs/ocfs2/stackglue.c | 3 ++-
>  fs/ocfs2/stackglue.h | 2 ++
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
> index 5d965e8..13219ed 100644
> --- a/fs/ocfs2/stackglue.c
> +++ b/fs/ocfs2/stackglue.c
> @@ -629,7 +629,8 @@ static struct attribute_group ocfs2_attr_group = {
>  	.attrs = ocfs2_attrs,
>  };
>  
> -static struct kset *ocfs2_kset;
> +struct kset *ocfs2_kset;
> +EXPORT_SYMBOL_GPL(ocfs2_kset);
>  
>  static void ocfs2_sysfs_exit(void)
>  {
> diff --git a/fs/ocfs2/stackglue.h b/fs/ocfs2/stackglue.h
> index 66334a3..f2dce10 100644
> --- a/fs/ocfs2/stackglue.h
> +++ b/fs/ocfs2/stackglue.h
> @@ -298,4 +298,6 @@ void ocfs2_stack_glue_set_max_proto_version(struct ocfs2_protocol_version *max_p
>  int ocfs2_stack_glue_register(struct ocfs2_stack_plugin *plugin);
>  void ocfs2_stack_glue_unregister(struct ocfs2_stack_plugin *plugin);
>  
> +extern struct kset *ocfs2_kset;
> +
>  #endif  /* STACKGLUE_H */
> -- 
> 2.1.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
Mark Fasheh
Andrew Morton Jan. 13, 2016, 11:07 p.m. UTC | #4
On Wed, 13 Jan 2016 15:02:28 -0800 Mark Fasheh <mfasheh@suse.de> wrote:

> On Fri, Dec 25, 2015 at 03:16:16PM +0800, Gang He wrote:
> > Export ocfs2_kset object from ocfs2_stackglue kernel module,
> > then online file check code will create the related sysfiles
> > under ocfs2_kset object.
> > 
> > Signed-off-by: Gang He <ghe@suse.com>
> 
> Reviewed-by: Mark Fasheh <mfasheh@suse.de>
> 
> This was easy to review, though you might consider adding a note that we're
> exporting this because it's built in ocfs2_stackglue.ko.

I've updated the changelog to reflect that.  (copy-n-paste is still in
my skillset).

Patch
diff mbox

diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index 5d965e8..13219ed 100644
--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -629,7 +629,8 @@  static struct attribute_group ocfs2_attr_group = {
 	.attrs = ocfs2_attrs,
 };
 
-static struct kset *ocfs2_kset;
+struct kset *ocfs2_kset;
+EXPORT_SYMBOL_GPL(ocfs2_kset);
 
 static void ocfs2_sysfs_exit(void)
 {
diff --git a/fs/ocfs2/stackglue.h b/fs/ocfs2/stackglue.h
index 66334a3..f2dce10 100644
--- a/fs/ocfs2/stackglue.h
+++ b/fs/ocfs2/stackglue.h
@@ -298,4 +298,6 @@  void ocfs2_stack_glue_set_max_proto_version(struct ocfs2_protocol_version *max_p
 int ocfs2_stack_glue_register(struct ocfs2_stack_plugin *plugin);
 void ocfs2_stack_glue_unregister(struct ocfs2_stack_plugin *plugin);
 
+extern struct kset *ocfs2_kset;
+
 #endif  /* STACKGLUE_H */