[PATCH] quota: check for register_sysctl() failure when has CONFIG_SYSCTL

Yangtao Li posted 1 patch 2 years, 10 months ago
fs/quota/dquot.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
[PATCH] quota: check for register_sysctl() failure when has CONFIG_SYSCTL
Posted by Yangtao Li 2 years, 10 months ago
Print a message that sysctl registration failed if CONFIG_SYSCTL
is enabled, and wrap the fs_dqstats_table array with CONFIG_SYSCTL.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
 fs/quota/dquot.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index 90cb70c82012..a16ddda02612 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -2879,6 +2879,7 @@ static int do_proc_dqstats(struct ctl_table *table, int write,
 	return proc_doulongvec_minmax(table, write, buffer, lenp, ppos);
 }
 
+#ifdef CONFIG_SYSCTL
 static struct ctl_table fs_dqstats_table[] = {
 	{
 		.procname	= "lookups",
@@ -2947,6 +2948,7 @@ static struct ctl_table fs_dqstats_table[] = {
 #endif
 	{ },
 };
+#endif
 
 static int __init dquot_init(void)
 {
@@ -2955,7 +2957,10 @@ static int __init dquot_init(void)
 
 	printk(KERN_NOTICE "VFS: Disk quotas %s\n", __DQUOT_VERSION__);
 
-	register_sysctl("fs/quota", fs_dqstats_table);
+#ifdef CONFIG_SYSCTL
+	if (!register_sysctl("fs/quota", fs_dqstats_table))
+		pr_notice("quota sysctl registration failed!\n");
+#endif
 
 	dquot_cachep = kmem_cache_create("dquot",
 			sizeof(struct dquot), sizeof(unsigned long) * 4,
-- 
2.35.1
Re: [PATCH] quota: check for register_sysctl() failure when has CONFIG_SYSCTL
Posted by Jan Kara 2 years, 10 months ago
On Tue 21-03-23 01:40:58, Yangtao Li wrote:
> Print a message that sysctl registration failed if CONFIG_SYSCTL
> is enabled, and wrap the fs_dqstats_table array with CONFIG_SYSCTL.
> 
> Signed-off-by: Yangtao Li <frank.li@vivo.com>

Thanks! I've added the patch to my tree.

								Honza

> ---
>  fs/quota/dquot.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
> index 90cb70c82012..a16ddda02612 100644
> --- a/fs/quota/dquot.c
> +++ b/fs/quota/dquot.c
> @@ -2879,6 +2879,7 @@ static int do_proc_dqstats(struct ctl_table *table, int write,
>  	return proc_doulongvec_minmax(table, write, buffer, lenp, ppos);
>  }
>  
> +#ifdef CONFIG_SYSCTL
>  static struct ctl_table fs_dqstats_table[] = {
>  	{
>  		.procname	= "lookups",
> @@ -2947,6 +2948,7 @@ static struct ctl_table fs_dqstats_table[] = {
>  #endif
>  	{ },
>  };
> +#endif
>  
>  static int __init dquot_init(void)
>  {
> @@ -2955,7 +2957,10 @@ static int __init dquot_init(void)
>  
>  	printk(KERN_NOTICE "VFS: Disk quotas %s\n", __DQUOT_VERSION__);
>  
> -	register_sysctl("fs/quota", fs_dqstats_table);
> +#ifdef CONFIG_SYSCTL
> +	if (!register_sysctl("fs/quota", fs_dqstats_table))
> +		pr_notice("quota sysctl registration failed!\n");
> +#endif
>  
>  	dquot_cachep = kmem_cache_create("dquot",
>  			sizeof(struct dquot), sizeof(unsigned long) * 4,
> -- 
> 2.35.1
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR