aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs/afs.h
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2012-02-07 16:20:48 -0800
committerEric W. Biederman <ebiederm@xmission.com>2013-02-13 06:00:51 -0800
commita0a5386ac6400493cc2eb8b58583e56af0708730 (patch)
tree2c46bb450629c4ee3296857ae20d77d902554500 /fs/afs/afs.h
parentafs: Only allow mounting afs in the intial network namespace (diff)
downloadlinux-dev-a0a5386ac6400493cc2eb8b58583e56af0708730.tar.xz
linux-dev-a0a5386ac6400493cc2eb8b58583e56af0708730.zip
afs: Support interacting with multiple user namespaces
Modify struct afs_file_status to store owner as a kuid_t and group as a kgid_t. In xdr_decode_AFSFetchStatus as owner is now a kuid_t and group is now a kgid_t don't use the EXTRACT macro. Instead perform the work of the extract macro explicitly. Read the value with ntohl and convert it to the appropriate type with make_kuid or make_kgid. Test if the value is different from what is stored in status and update changed. Update the value in status. In xdr_encode_AFS_StoreStatus call from_kuid or from_kgid as we are computing the on the wire encoding. Initialize uids with GLOBAL_ROOT_UID instead of 0. Initialize gids with GLOBAL_ROOT_GID instead of 0. Cc: David Howells <dhowells@redhat.com> Acked-by: Serge Hallyn <serge.hallyn@canonical.com> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'fs/afs/afs.h')
-rw-r--r--fs/afs/afs.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/afs/afs.h b/fs/afs/afs.h
index 3d8fd35c0dd0..3c462ff6db63 100644
--- a/fs/afs/afs.h
+++ b/fs/afs/afs.h
@@ -119,8 +119,8 @@ struct afs_file_status {
u64 size; /* file size */
afs_dataversion_t data_version; /* current data version */
u32 author; /* author ID */
- u32 owner; /* owner ID */
- u32 group; /* group ID */
+ kuid_t owner; /* owner ID */
+ kgid_t group; /* group ID */
afs_access_t caller_access; /* access rights for authenticated caller */
afs_access_t anon_access; /* access rights for unauthenticated caller */
umode_t mode; /* UNIX mode */