[PATCH v3 2/3] sysctl/coda: Fixes timeout bounds

From: nicolas . bouchinet
Date: Thu Mar 06 2025 - 07:35:56 EST


From: Nicolas Bouchinet <nicolas.bouchinet@xxxxxxxxxxx>

Bound coda timeout sysctl writings between SYSCTL_ZERO
and SYSCTL_INT_MAX.

The proc_handler has thus been updated to proc_dointvec_minmax.

coda_timeout type has been updated from an unsigned long to an unsigned
int since it is typically set to some value well under a minute.

Signed-off-by: Nicolas Bouchinet <nicolas.bouchinet@xxxxxxxxxxx>

---

Changes since v2:
https://lore.kernel.org/all/20250224095826.16458-4-nicolas.bouchinet@xxxxxxxxxxx/

* Changed coda_timeout type from unsigned long to unsigned int as
suggested by Joel Granados and Jan Harkes.

---
fs/coda/coda_int.h | 2 +-
fs/coda/sysctl.c | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/fs/coda/coda_int.h b/fs/coda/coda_int.h
index f82b59c9dd287..c7fc4c5a77d58 100644
--- a/fs/coda/coda_int.h
+++ b/fs/coda/coda_int.h
@@ -6,7 +6,7 @@ struct dentry;
struct file;

extern struct file_system_type coda_fs_type;
-extern unsigned long coda_timeout;
+extern unsigned int coda_timeout;
extern int coda_hard;
extern int coda_fake_statfs;

diff --git a/fs/coda/sysctl.c b/fs/coda/sysctl.c
index 0df46f09b6cc5..d6f8206c51575 100644
--- a/fs/coda/sysctl.c
+++ b/fs/coda/sysctl.c
@@ -20,7 +20,9 @@ static const struct ctl_table coda_table[] = {
.data = &coda_timeout,
.maxlen = sizeof(int),
.mode = 0644,
- .proc_handler = proc_dointvec
+ .proc_handler = proc_dointvec_minmax,
+ .extra1 = SYSCTL_ZERO,
+ .extra2 = SYSCTL_INT_MAX,
},
{
.procname = "hard",
--
2.48.1