From: "J. Bruce Fields" <[email protected]>
For historical reasons having to do with Solaris ACL behavior, the Linux
client treats an ACL like the one used as an example here as equivalent
to a mode, causing listxattr to report that no ACL is set on the file.
(See the comment at the top of fs/nfs_common/nfsacl.c in the kernel
source for details, and the "bogus ACL_MASK entry" comment in the same
source file.) This causes a spurious generic/529 failure on NFS.
As far as I can tell any ACL should trigger the original XFS problem.
So, modify it so as not to hit this odd NFS corner case.
Signed-off-by: J. Bruce Fields <[email protected]>
---
src/t_attr_corruption.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/t_attr_corruption.c b/src/t_attr_corruption.c
index e7d435b1791f..b5513d44a288 100644
--- a/src/t_attr_corruption.c
+++ b/src/t_attr_corruption.c
@@ -59,7 +59,7 @@ int main(int argc, char *argv[])
.e = {
{htole16(1), 0, 0},
{htole16(4), 0, 0},
- {htole16(0x10), 0, 0},
+ {htole16(0x10), htole16(4), 0},
{htole16(0x20), 0, 0},
},
};
--
2.24.1
On Thu, Dec 19, 2019 at 05:33:36PM -0500, J. Bruce Fields wrote:
> From: "J. Bruce Fields" <[email protected]>
>
> For historical reasons having to do with Solaris ACL behavior, the Linux
> client treats an ACL like the one used as an example here as equivalent
> to a mode, causing listxattr to report that no ACL is set on the file.
>
> (See the comment at the top of fs/nfs_common/nfsacl.c in the kernel
> source for details, and the "bogus ACL_MASK entry" comment in the same
> source file.) This causes a spurious generic/529 failure on NFS.
Thanks Bruce very much for the fix!
Murphy
>
> As far as I can tell any ACL should trigger the original XFS problem.
> So, modify it so as not to hit this odd NFS corner case.
>
> Signed-off-by: J. Bruce Fields <[email protected]>
> ---
> src/t_attr_corruption.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/t_attr_corruption.c b/src/t_attr_corruption.c
> index e7d435b1791f..b5513d44a288 100644
> --- a/src/t_attr_corruption.c
> +++ b/src/t_attr_corruption.c
> @@ -59,7 +59,7 @@ int main(int argc, char *argv[])
> .e = {
> {htole16(1), 0, 0},
> {htole16(4), 0, 0},
> - {htole16(0x10), 0, 0},
> + {htole16(0x10), htole16(4), 0},
> {htole16(0x20), 0, 0},
> },
> };
> --
> 2.24.1
>