diff options
author | Dwight Engen <dwight.engen@oracle.com> | 2013-08-15 14:07:58 -0400 |
---|---|---|
committer | Ben Myers <bpm@sgi.com> | 2013-08-15 15:17:34 -0400 |
commit | c5eeb7ec3e1bb9884e97066bc293792ab57fb4ab (patch) | |
tree | d45db31136338ee54470c036e2056f9cf5b8a84b /fs/xfs/xfs_linux.h | |
parent | 4bb928cdb900d0614f4766d5f1ca5bc3844f7656 (diff) |
xfs: create wrappers for converting kuid_t to/from uid_t
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_linux.h')
-rw-r--r-- | fs/xfs/xfs_linux.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h index 3bc52b78f8b7..2dbabcb31a7d 100644 --- a/fs/xfs/xfs_linux.h +++ b/fs/xfs/xfs_linux.h | |||
@@ -191,6 +191,32 @@ typedef __uint64_t __psunsigned_t; | |||
191 | #define MAX(a,b) (max(a,b)) | 191 | #define MAX(a,b) (max(a,b)) |
192 | #define howmany(x, y) (((x)+((y)-1))/(y)) | 192 | #define howmany(x, y) (((x)+((y)-1))/(y)) |
193 | 193 | ||
194 | /* Kernel uid/gid conversion. These are used to convert to/from the on disk | ||
195 | * uid_t/gid_t types to the kuid_t/kgid_t types that the kernel uses internally. | ||
196 | * The conversion here is type only, the value will remain the same since we | ||
197 | * are converting to the init_user_ns. The uid is later mapped to a particular | ||
198 | * user namespace value when crossing the kernel/user boundary. | ||
199 | */ | ||
200 | static inline __uint32_t xfs_kuid_to_uid(kuid_t uid) | ||
201 | { | ||
202 | return from_kuid(&init_user_ns, uid); | ||
203 | } | ||
204 | |||
205 | static inline kuid_t xfs_uid_to_kuid(__uint32_t uid) | ||
206 | { | ||
207 | return make_kuid(&init_user_ns, uid); | ||
208 | } | ||
209 | |||
210 | static inline __uint32_t xfs_kgid_to_gid(kgid_t gid) | ||
211 | { | ||
212 | return from_kgid(&init_user_ns, gid); | ||
213 | } | ||
214 | |||
215 | static inline kgid_t xfs_gid_to_kgid(__uint32_t gid) | ||
216 | { | ||
217 | return make_kgid(&init_user_ns, gid); | ||
218 | } | ||
219 | |||
194 | /* | 220 | /* |
195 | * Various platform dependent calls that don't fit anywhere else | 221 | * Various platform dependent calls that don't fit anywhere else |
196 | */ | 222 | */ |