1 From: Frank Filz <ffilz@us.ibm.com>
2 Subject: Fix issues with POSIX->NFSv4 ACL conversion
5 1. GROUP@ Allow entry [accidentally has] NFS4_ACE_IDENTIFIER_GROUP, This
6 appears to have been introduced by accident as part of commit bec50c4
8 2. The group deny entries end up denying tcy even though tcy was just
9 allowed by the allow entry. This appears to be due to:
10 ace->access_mask = mask_from_posix(deny, flags);
12 ace->access_mask = deny_mask_from_posix(deny, flags);
16 Signed-off-by: Frank Filz <ffilzlnx@...>
17 Acked-by: J. Bruce Fields <bfields@fieldses.org>
18 Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
20 diff -X ignore -ruNp linux-2.6.27.19-5/fs/nfsd/nfs4acl.c linux-2.6.27.19-5.5408/fs/nfsd/nfs4acl.c
21 --- linux-2.6.27.19-5/fs/nfsd/nfs4acl.c 2008-10-09 15:13:53.000000000 -0700
22 +++ linux-2.6.27.19-5.5408/fs/nfsd/nfs4acl.c 2009-08-28 13:32:40.000000000 -0700
23 @@ -321,7 +321,7 @@ _posix_to_nfsv4_one(struct posix_acl *pa
24 deny = ~pas.group & pas.other;
26 ace->type = NFS4_ACE_ACCESS_DENIED_ACE_TYPE;
27 - ace->flag = eflag | NFS4_ACE_IDENTIFIER_GROUP;
29 ace->access_mask = deny_mask_from_posix(deny, flags);
30 ace->whotype = NFS4_ACL_WHO_GROUP;
32 @@ -335,7 +335,7 @@ _posix_to_nfsv4_one(struct posix_acl *pa
34 ace->type = NFS4_ACE_ACCESS_DENIED_ACE_TYPE;
35 ace->flag = eflag | NFS4_ACE_IDENTIFIER_GROUP;
36 - ace->access_mask = mask_from_posix(deny, flags);
37 + ace->access_mask = deny_mask_from_posix(deny, flags);
38 ace->whotype = NFS4_ACL_WHO_NAMED;