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

From: Yangtao Li
Date: Mon Mar 20 2023 - 13:45:44 EST


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@xxxxxxxx>
---
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