summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/export.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2013-02-02 05:18:08 -0800
committerEric W. Biederman <ebiederm@xmission.com>2013-02-13 06:16:06 -0800
commitab8e4aee0a3f73d1b12e6d63b42075f0586ad4fd (patch)
treedc58ca18da44877a8274e423079a9aee65dce7fa /fs/nfsd/export.c
parent7c19723e997a3990951c0db0500009fb90c0c5b9 (diff)
downloadblackbird-op-linux-ab8e4aee0a3f73d1b12e6d63b42075f0586ad4fd.tar.gz
blackbird-op-linux-ab8e4aee0a3f73d1b12e6d63b42075f0586ad4fd.zip
nfsd: Handle kuids and kgids in the nfs4acl to posix_acl conversion
In struct nfs4_ace remove the member who and replace it with an anonymous union holding who_uid and who_gid. Allowing typesafe storage uids and gids. Add a helper pace_gt for sorting posix_acl_entries. In struct posix_user_ace_state to replace uid with a union of kuid_t uid and kgid_t gid. Remove all initializations of the deprecated posic_acl_entry e_id field. Which is not present when user namespaces are enabled. Split find_uid into two functions find_uid and find_gid that work in a typesafe manner. In nfs4xdr update nfsd4_encode_fattr to deal with the changes in struct nfs4_ace. Rewrite nfsd4_encode_name to take a kuid_t and a kgid_t instead of a generic id and flag if it is a group or a uid. Replace the group flag with a test for a valid gid. Modify nfsd4_encode_user to take a kuid_t and call the modifed nfsd4_encode_name. Modify nfsd4_encode_group to take a kgid_t and call the modified nfsd4_encode_name. Modify nfsd4_encode_aclname to take an ace instead of taking the fields of an ace broken out. This allows it to detect if the ace is for a user or a group and to pass the appropriate value while still being typesafe. Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'fs/nfsd/export.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud