Blame view
include/linux/user_namespace.h
1.46 KB
acce292c8 user namespace: a... |
1 2 3 4 5 6 |
#ifndef _LINUX_USER_NAMESPACE_H #define _LINUX_USER_NAMESPACE_H #include <linux/kref.h> #include <linux/nsproxy.h> #include <linux/sched.h> |
77ec739d8 user namespace: a... |
7 |
#include <linux/err.h> |
acce292c8 user namespace: a... |
8 |
|
6164281ab user_ns: improve ... |
9 |
#define UIDHASH_BITS (CONFIG_BASE_SMALL ? 3 : 7) |
acce292c8 user namespace: a... |
10 11 12 13 |
#define UIDHASH_SZ (1 << UIDHASH_BITS) struct user_namespace { struct kref kref; |
735de2230 Convert uid hash ... |
14 |
struct hlist_head uidhash_table[UIDHASH_SZ]; |
18b6e0414 User namespaces: ... |
15 |
struct user_struct *creator; |
517083667 Fix recursive loc... |
16 |
struct work_struct destroyer; |
acce292c8 user namespace: a... |
17 18 19 20 21 22 23 24 25 26 27 28 |
}; extern struct user_namespace init_user_ns; #ifdef CONFIG_USER_NS static inline struct user_namespace *get_user_ns(struct user_namespace *ns) { if (ns) kref_get(&ns->kref); return ns; } |
18b6e0414 User namespaces: ... |
29 |
extern int create_user_ns(struct cred *new); |
acce292c8 user namespace: a... |
30 31 32 33 34 35 36 |
extern void free_user_ns(struct kref *kref); static inline void put_user_ns(struct user_namespace *ns) { if (ns) kref_put(&ns->kref, free_user_ns); } |
5c1469de7 user_ns: Introduc... |
37 38 |
uid_t user_ns_map_uid(struct user_namespace *to, const struct cred *cred, uid_t uid); gid_t user_ns_map_gid(struct user_namespace *to, const struct cred *cred, gid_t gid); |
acce292c8 user namespace: a... |
39 40 41 42 43 44 |
#else static inline struct user_namespace *get_user_ns(struct user_namespace *ns) { return &init_user_ns; } |
18b6e0414 User namespaces: ... |
45 |
static inline int create_user_ns(struct cred *new) |
acce292c8 user namespace: a... |
46 |
{ |
18b6e0414 User namespaces: ... |
47 |
return -EINVAL; |
acce292c8 user namespace: a... |
48 49 50 51 52 |
} static inline void put_user_ns(struct user_namespace *ns) { } |
5c1469de7 user_ns: Introduc... |
53 54 55 56 57 58 59 60 61 62 |
static inline uid_t user_ns_map_uid(struct user_namespace *to, const struct cred *cred, uid_t uid) { return uid; } static inline gid_t user_ns_map_gid(struct user_namespace *to, const struct cred *cred, gid_t gid) { return gid; } |
acce292c8 user namespace: a... |
63 64 65 |
#endif #endif /* _LINUX_USER_H */ |