ucount: Make sure ucounts in /proc/sys/user don't regress again
authorJan Kara <jack@suse.cz>
Tue, 7 Apr 2020 15:46:43 +0000 (17:46 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 7 Apr 2020 19:51:27 +0000 (21:51 +0200)
Commit 769071ac9f20 "ns: Introduce Time Namespace" broke reporting of
inotify ucounts (max_inotify_instances, max_inotify_watches) in
/proc/sys/user because it has added UCOUNT_TIME_NAMESPACES into enum
ucount_type but didn't properly update reporting in
kernel/ucount.c:setup_userns_sysctls(). This problem got fixed in commit
eeec26d5da82 "time/namespace: Add max_time_namespaces ucount".

Add BUILD_BUG_ON to catch a similar problem in the future.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Andrei Vagin <avagin@gmail.com>
Link: https://lkml.kernel.org/r/20200407154643.10102-1-jack@suse.cz
kernel/ucount.c

index 29c60eb4ec9bf3f1f6eb74071633af82ffb11215..11b1596e2542a5e28061cb31201e2a89bf66e936 100644 (file)
@@ -82,6 +82,8 @@ bool setup_userns_sysctls(struct user_namespace *ns)
 {
 #ifdef CONFIG_SYSCTL
        struct ctl_table *tbl;
+
+       BUILD_BUG_ON(ARRAY_SIZE(user_table) != UCOUNT_COUNTS + 1);
        setup_sysctl_set(&ns->set, &set_root, set_is_seen);
        tbl = kmemdup(user_table, sizeof(user_table), GFP_KERNEL);
        if (tbl) {