Messages in this thread | | | From | (Eric W. Biederman) | Date | Fri, 30 Jul 2021 12:52:37 -0500 | Subject | Re: [PATCH v3] ucounts: add missing data type changes |
| |
Sven Schnelle <svens@linux.ibm.com> writes:
> commit f9c82a4ea89c3 ("Increase size of ucounts to atomic_long_t") > changed the data type of ucounts/ucounts_max to long, but missed to > adjust a few other places. This is noticeable on big endian platforms > from user space because the /proc/sys/user/max_*_names files all > contain 0.
Applied. Thank you. > > Fixes: f9c82a4ea89c ("Increase size of ucounts to atomic_long_t") > Signed-off-by: Sven Schnelle <svens@linux.ibm.com> > --- > fs/notify/fanotify/fanotify_user.c | 10 ++++++---- > fs/notify/inotify/inotify_user.c | 10 ++++++---- > kernel/ucount.c | 16 ++++++++-------- > 3 files changed, 20 insertions(+), 16 deletions(-) > > diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c > index 64864fb40b40..6576657a1a25 100644 > --- a/fs/notify/fanotify/fanotify_user.c > +++ b/fs/notify/fanotify/fanotify_user.c > @@ -58,18 +58,20 @@ struct ctl_table fanotify_table[] = { > { > .procname = "max_user_groups", > .data = &init_user_ns.ucount_max[UCOUNT_FANOTIFY_GROUPS], > - .maxlen = sizeof(int), > + .maxlen = sizeof(long), > .mode = 0644, > - .proc_handler = proc_dointvec_minmax, > + .proc_handler = proc_doulongvec_minmax, > .extra1 = SYSCTL_ZERO, > + .extra2 = SYSCTL_INT_MAX, > }, > { > .procname = "max_user_marks", > .data = &init_user_ns.ucount_max[UCOUNT_FANOTIFY_MARKS], > - .maxlen = sizeof(int), > + .maxlen = sizeof(long), > .mode = 0644, > - .proc_handler = proc_dointvec_minmax, > + .proc_handler = proc_doulongvec_minmax, > .extra1 = SYSCTL_ZERO, > + .extra2 = SYSCTL_INT_MAX, > }, > { > .procname = "max_queued_events", > diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c > index 98f61b31745a..55fe7cdea2fb 100644 > --- a/fs/notify/inotify/inotify_user.c > +++ b/fs/notify/inotify/inotify_user.c > @@ -59,18 +59,20 @@ struct ctl_table inotify_table[] = { > { > .procname = "max_user_instances", > .data = &init_user_ns.ucount_max[UCOUNT_INOTIFY_INSTANCES], > - .maxlen = sizeof(int), > + .maxlen = sizeof(long), > .mode = 0644, > - .proc_handler = proc_dointvec_minmax, > + .proc_handler = proc_doulongvec_minmax, > .extra1 = SYSCTL_ZERO, > + .extra2 = SYSCTL_INT_MAX, > }, > { > .procname = "max_user_watches", > .data = &init_user_ns.ucount_max[UCOUNT_INOTIFY_WATCHES], > - .maxlen = sizeof(int), > + .maxlen = sizeof(long), > .mode = 0644, > - .proc_handler = proc_dointvec_minmax, > + .proc_handler = proc_doulongvec_minmax, > .extra1 = SYSCTL_ZERO, > + .extra2 = SYSCTL_INT_MAX, > }, > { > .procname = "max_queued_events", > diff --git a/kernel/ucount.c b/kernel/ucount.c > index 87799e2379bd..f852591e395c 100644 > --- a/kernel/ucount.c > +++ b/kernel/ucount.c > @@ -58,14 +58,14 @@ static struct ctl_table_root set_root = { > .permissions = set_permissions, > }; > > -#define UCOUNT_ENTRY(name) \ > - { \ > - .procname = name, \ > - .maxlen = sizeof(int), \ > - .mode = 0644, \ > - .proc_handler = proc_dointvec_minmax, \ > - .extra1 = SYSCTL_ZERO, \ > - .extra2 = SYSCTL_INT_MAX, \ > +#define UCOUNT_ENTRY(name) \ > + { \ > + .procname = name, \ > + .maxlen = sizeof(long), \ > + .mode = 0644, \ > + .proc_handler = proc_doulongvec_minmax, \ > + .extra1 = SYSCTL_ZERO, \ > + .extra2 = SYSCTL_INT_MAX, \ > } > static struct ctl_table user_table[] = { > UCOUNT_ENTRY("max_user_namespaces"),
| |