5 #define XID_TAG(in) (!(in) || \
6 (((struct inode *)in)->i_sb && \
7 (((struct inode *)in)->i_sb->s_flags & MS_TAGXID)))
10 #ifdef CONFIG_INOXID_NONE
12 #define MAX_UID 0xFFFFFFFF
13 #define MAX_GID 0xFFFFFFFF
15 #define INOXID_XID(tag, uid, gid, xid) (0)
17 #define XIDINO_UID(tag, uid, xid) (uid)
18 #define XIDINO_GID(tag, gid, xid) (gid)
23 #ifdef CONFIG_INOXID_GID16
25 #define MAX_UID 0xFFFFFFFF
26 #define MAX_GID 0x0000FFFF
28 #define INOXID_XID(tag, uid, gid, xid) \
29 ((tag) ? (((gid) >> 16) & 0xFFFF) : 0)
31 #define XIDINO_UID(tag, uid, xid) (uid)
32 #define XIDINO_GID(tag, gid, xid) \
33 ((tag) ? (((gid) & 0xFFFF) | ((xid) << 16)) : (gid))
38 #ifdef CONFIG_INOXID_UGID24
40 #define MAX_UID 0x00FFFFFF
41 #define MAX_GID 0x00FFFFFF
43 #define INOXID_XID(tag, uid, gid, xid) \
44 ((tag) ? ((((uid) >> 16) & 0xFF00) | (((gid) >> 24) & 0xFF)) : 0)
46 #define XIDINO_UID(tag, uid, xid) \
47 ((tag) ? (((uid) & 0xFFFFFF) | (((xid) & 0xFF00) << 16)) : (uid))
48 #define XIDINO_GID(tag, gid, xid) \
49 ((tag) ? (((gid) & 0xFFFFFF) | (((xid) & 0x00FF) << 24)) : (gid))
54 #ifdef CONFIG_INOXID_UID16
56 #define MAX_UID 0x0000FFFF
57 #define MAX_GID 0xFFFFFFFF
59 #define INOXID_XID(tag, uid, gid, xid) \
60 ((tag) ? ((uid) >> 16) & 0xFFFF) : 0)
62 #define XIDINO_UID(tag, uid, xid) \
63 ((tag) ? (((uid) & 0xFFFF) | ((xid) << 16)) : (uid))
64 #define XIDINO_GID(tag, gid, xid) (gid)
69 #ifdef CONFIG_INOXID_INTERN
71 #define MAX_UID 0xFFFFFFFF
72 #define MAX_GID 0xFFFFFFFF
74 #define INOXID_XID(tag, uid, gid, xid) \
77 #define XIDINO_UID(tag, uid, xid) (uid)
78 #define XIDINO_GID(tag, gid, xid) (gid)
83 #ifdef CONFIG_INOXID_RUNTIME
85 #define MAX_UID 0xFFFFFFFF
86 #define MAX_GID 0xFFFFFFFF
88 #define INOXID_XID(tag, uid, gid, xid) (0)
90 #define XIDINO_UID(tag, uid, xid) (uid)
91 #define XIDINO_GID(tag, gid, xid) (gid)
96 #define INOXID_UID(tag, uid, gid) \
97 ((tag) ? ((uid) & MAX_UID) : (uid))
98 #define INOXID_GID(tag, uid, gid) \
99 ((tag) ? ((gid) & MAX_GID) : (gid))
102 static inline uid_t vx_map_uid(uid_t uid)
104 if ((uid > MAX_UID) && (uid != -1))
106 return (uid & MAX_UID);
109 static inline gid_t vx_map_gid(gid_t gid)
111 if ((gid > MAX_GID) && (gid != -1))
113 return (gid & MAX_GID);
117 #ifdef CONFIG_VSERVER_LEGACY
118 #define FIOC_GETXID _IOR('x', 1, long)
119 #define FIOC_SETXID _IOW('x', 2, long)
120 #define FIOC_SETXIDJ _IOW('x', 3, long)
123 #endif /* _VX_XID_H */