userns: userns: Remove UIDGID_STRICT_TYPE_CHECKS

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>
This commit is contained in:
Eric W. Biederman 2012-05-25 18:37:55 -06:00
parent 41301ae78a
commit 261000a56b
4 changed files with 0 additions and 51 deletions

View file

@ -39,9 +39,6 @@ struct posix_acl_entry {
union { union {
kuid_t e_uid; kuid_t e_uid;
kgid_t e_gid; kgid_t e_gid;
#ifndef CONFIG_UIDGID_STRICT_TYPE_CHECKS
unsigned int e_id;
#endif
}; };
}; };

View file

@ -18,8 +18,6 @@ extern struct user_namespace init_user_ns;
typedef __kernel_uid32_t projid_t; typedef __kernel_uid32_t projid_t;
#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
typedef struct { typedef struct {
projid_t val; projid_t val;
} kprojid_t; } kprojid_t;
@ -31,19 +29,6 @@ static inline projid_t __kprojid_val(kprojid_t projid)
#define KPROJIDT_INIT(value) (kprojid_t){ value } #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 INVALID_PROJID KPROJIDT_INIT(-1)
#define OVERFLOW_PROJID 65534 #define OVERFLOW_PROJID 65534

View file

@ -17,8 +17,6 @@
struct user_namespace; struct user_namespace;
extern struct user_namespace init_user_ns; extern struct user_namespace init_user_ns;
#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
typedef struct { typedef struct {
uid_t val; uid_t val;
} kuid_t; } kuid_t;
@ -41,26 +39,6 @@ static inline gid_t __kgid_val(kgid_t gid)
return gid.val; 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_UID KUIDT_INIT(0)
#define GLOBAL_ROOT_GID KGIDT_INIT(0) #define GLOBAL_ROOT_GID KGIDT_INIT(0)

View file

@ -1110,8 +1110,6 @@ config IPC_NS
config USER_NS config USER_NS
bool "User namespace" bool "User namespace"
select UIDGID_STRICT_TYPE_CHECKS
default n default n
help help
This allows containers, i.e. vservers, to use user namespaces This allows containers, i.e. vservers, to use user namespaces
@ -1143,15 +1141,6 @@ config NET_NS
endif # NAMESPACES 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 config SCHED_AUTOGROUP
bool "Automatic process group scheduling" bool "Automatic process group scheduling"
select EVENTFD select EVENTFD