userns: userns: Remove UIDGID_STRICT_TYPE_CHECKS
authorEric W. Biederman <ebiederm@xmission.com>
Sat, 26 May 2012 00:37:55 +0000 (18:37 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Wed, 27 Nov 2013 04:55:33 +0000 (20:55 -0800)
Removing UIDGID_STRICT_TYPE_CHECKS simplifies the code and always
generates a compile error if the uids and kuids or gids and kgids are
mixed by accident.  Now that the appropriate conversions have been
placed throughout the kernel there is no longer a need for a mode where
we don't detect them as compile errors.

Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
include/linux/posix_acl.h
include/linux/projid.h
include/linux/uidgid.h
init/Kconfig

index 7931efe..f0f7746 100644 (file)
@@ -39,9 +39,6 @@ struct posix_acl_entry {
        union {
                kuid_t          e_uid;
                kgid_t          e_gid;
-#ifndef CONFIG_UIDGID_STRICT_TYPE_CHECKS
-               unsigned int    e_id;
-#endif
        };
 };
 
index 36517b9..8c1f2c5 100644 (file)
@@ -18,8 +18,6 @@ extern struct user_namespace init_user_ns;
 
 typedef __kernel_uid32_t projid_t;
 
-#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
-
 typedef struct {
        projid_t val;
 } kprojid_t;
@@ -31,19 +29,6 @@ static inline projid_t __kprojid_val(kprojid_t projid)
 
 #define KPROJIDT_INIT(value) (kprojid_t){ value }
 
-#else
-
-typedef projid_t kprojid_t;
-
-static inline projid_t __kprojid_val(kprojid_t projid)
-{
-       return projid;
-}
-
-#define KPROJIDT_INIT(value) ((kprojid_t) value )
-
-#endif
-
 #define INVALID_PROJID KPROJIDT_INIT(-1)
 #define OVERFLOW_PROJID 65534
 
index 8e522cb..2d1f9b6 100644 (file)
@@ -17,8 +17,6 @@
 struct user_namespace;
 extern struct user_namespace init_user_ns;
 
-#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
-
 typedef struct {
        uid_t val;
 } kuid_t;
@@ -41,26 +39,6 @@ static inline gid_t __kgid_val(kgid_t gid)
        return gid.val;
 }
 
-#else
-
-typedef uid_t kuid_t;
-typedef gid_t kgid_t;
-
-static inline uid_t __kuid_val(kuid_t uid)
-{
-       return uid;
-}
-
-static inline gid_t __kgid_val(kgid_t gid)
-{
-       return gid;
-}
-
-#define KUIDT_INIT(value) ((kuid_t) value )
-#define KGIDT_INIT(value) ((kgid_t) value )
-
-#endif
-
 #define GLOBAL_ROOT_UID KUIDT_INIT(0)
 #define GLOBAL_ROOT_GID KGIDT_INIT(0)
 
index 79383d3..d4eb994 100644 (file)
@@ -1110,8 +1110,6 @@ config IPC_NS
 
 config USER_NS
        bool "User namespace"
-       select UIDGID_STRICT_TYPE_CHECKS
-
        default n
        help
          This allows containers, i.e. vservers, to use user namespaces
@@ -1143,15 +1141,6 @@ config NET_NS
 
 endif # NAMESPACES
 
-config UIDGID_STRICT_TYPE_CHECKS
-       bool "Require conversions between uid/gids and their internal representation"
-       default n
-       help
-        While the nececessary conversions are being added to all subsystems this option allows
-        the code to continue to build for unconverted subsystems.
-
-        Say Y here if you want the strict type checking enabled
-
 config SCHED_AUTOGROUP
        bool "Automatic process group scheduling"
        select EVENTFD