--- libacl/acl_set_file.c.dist 2007-03-21 16:55:27.256857991 -0500 +++ libacl/acl_set_file.c 2007-03-21 16:55:07.623739163 -0500 @@ -50,6 +50,7 @@ struct nfs4_acl * nacl; int is_dir = NFS4_ACL_ISFILE; #endif + int is_nfs = 0; if (!acl_obj_p) return -1; @@ -111,6 +112,7 @@ size = acl_nfs4_xattr_pack(nacl, &ext_acl_p); name = ACL_NFS4_XATTR; + is_nfs = 1; acl_nfs4_free(nacl); } #else @@ -133,7 +135,7 @@ if (!ext_acl_p) return -1; - error = setxattr(path_p, name, (char *)ext_acl_p, size, XATTR_REPLACE); + error = setxattr(path_p, name, (char *)ext_acl_p, size, is_nfs ? XATTR_REPLACE : 0); free(ext_acl_p); return error; }