]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
sysctl: Wrap do_proc_douintvec with the public function proc_douintvec_conv
authorJoel Granados <joel.granados@kernel.org>
Thu, 16 Oct 2025 09:04:23 +0000 (11:04 +0200)
committerJoel Granados <joel.granados@kernel.org>
Thu, 27 Nov 2025 14:45:38 +0000 (15:45 +0100)
Make do_proc_douintvec static and export proc_douintvec_conv wrapper
function for external use. This is to keep with the design in sysctl.c.
Update fs/pipe.c to use the new public API.

Signed-off-by: Joel Granados <joel.granados@kernel.org>
fs/pipe.c
include/linux/sysctl.h
kernel/sysctl.c

index f1b3d1154ad22d81fc7c2ec85fa0df35a7b7c9dd..0acca73617e9addf9a06b2deb3aa23c32d6af5e1 100644 (file)
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -1489,8 +1489,8 @@ static SYSCTL_UINT_CONV_CUSTOM(_pipe_maxsz,
 static int proc_dopipe_max_size(const struct ctl_table *table, int write,
                                void *buffer, size_t *lenp, loff_t *ppos)
 {
-       return do_proc_douintvec(table, write, buffer, lenp, ppos,
-                                do_proc_uint_conv_pipe_maxsz);
+       return proc_douintvec_conv(table, write, buffer, lenp, ppos,
+                                  do_proc_uint_conv_pipe_maxsz);
 }
 
 static const struct ctl_table fs_pipe_sysctls[] = {
index 4c88514a7d1a5a37b319e13842b004b5462d8bb1..288fe0055cd5f7bd670a4e9797cc0595f4060e5f 100644 (file)
@@ -183,14 +183,20 @@ int proc_dostring(const struct ctl_table *, int, void *, size_t *, loff_t *);
 int proc_dobool(const struct ctl_table *table, int write, void *buffer,
                size_t *lenp, loff_t *ppos);
 int proc_dointvec(const struct ctl_table *, int, void *, size_t *, loff_t *);
+int proc_dointvec_minmax(const struct ctl_table *table, int dir, void *buffer,
+                        size_t *lenp, loff_t *ppos);
 int proc_dointvec_conv(const struct ctl_table *table, int dir, void *buffer,
                       size_t *lenp, loff_t *ppos,
                       int (*conv)(bool *negp, unsigned long *u_ptr, int *k_ptr,
                                   int dir, const struct ctl_table *table));
 int proc_douintvec(const struct ctl_table *, int, void *, size_t *, loff_t *);
-int proc_dointvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *);
 int proc_douintvec_minmax(const struct ctl_table *table, int write, void *buffer,
                size_t *lenp, loff_t *ppos);
+int proc_douintvec_conv(const struct ctl_table *table, int write, void *buffer,
+                       size_t *lenp, loff_t *ppos,
+                       int (*conv)(unsigned long *lvalp, unsigned int *valp,
+                                   int write, const struct ctl_table *table));
+
 int proc_dou8vec_minmax(const struct ctl_table *table, int write, void *buffer,
                        size_t *lenp, loff_t *ppos);
 int proc_doulongvec_minmax(const struct ctl_table *, int, void *, size_t *, loff_t *);
@@ -346,11 +352,6 @@ extern struct ctl_table_header *register_sysctl_mount_point(const char *path);
 
 void do_sysctl_args(void);
 bool sysctl_is_alias(char *param);
-int do_proc_douintvec(const struct ctl_table *table, int write,
-                     void *buffer, size_t *lenp, loff_t *ppos,
-                     int (*conv)(unsigned long *lvalp,
-                                 unsigned int *valp, int write,
-                                 const struct ctl_table *table));
 
 extern int unaligned_enabled;
 extern int no_unaligned_warning;
index d09c6602a1150240a1ce9049c8da96bfc87d5105..2cd767b9680eb696efeae06f436548777b1b6844 100644 (file)
@@ -535,10 +535,11 @@ out:
        return err;
 }
 
-int do_proc_douintvec(const struct ctl_table *table, int dir, void *buffer,
-                     size_t *lenp, loff_t *ppos,
-                     int (*conv)(unsigned long *u_ptr, unsigned int *k_ptr,
-                                 int dir, const struct ctl_table *table))
+static int do_proc_douintvec(const struct ctl_table *table, int dir,
+                            void *buffer, size_t *lenp, loff_t *ppos,
+                             int (*conv)(unsigned long *u_ptr,
+                                         unsigned int *k_ptr, int dir,
+                                         const struct ctl_table *table))
 {
        unsigned int vleft;
 
@@ -567,6 +568,15 @@ int do_proc_douintvec(const struct ctl_table *table, int dir, void *buffer,
        return do_proc_douintvec_r(table, buffer, lenp, ppos, conv);
 }
 
+int proc_douintvec_conv(const struct ctl_table *table, int dir, void *buffer,
+                       size_t *lenp, loff_t *ppos,
+                       int (*conv)(unsigned long *u_ptr, unsigned int *k_ptr,
+                                   int dir, const struct ctl_table *table))
+{
+       return do_proc_douintvec(table, dir, buffer, lenp, ppos, conv);
+}
+
+
 /**
  * proc_dobool - read/write a bool
  * @table: the sysctl table