diff -u -r acl-2.2.49.orig/debian/changelog acl-2.2.49/debian/changelog --- acl-2.2.49.orig/debian/changelog 2010-09-21 06:02:04.000000000 +0100 +++ acl-2.2.49/debian/changelog 2011-05-06 23:39:24.817562608 +0100 @@ -1,3 +1,21 @@ +acl (2.2.49-4.nfsv4-3) unstable; urgency=low + + * Handle that XFS comes back with EINVAL for xattr ops + + -- Alexander Clouter Fri, 6 May 2011 23:36:00 +0100 + +acl (2.2.49-4.nfsv4-2) unstable; urgency=low + + * Fix a nfsv4->posix mapping problem that gave groups spurious bits + + -- J. Bruce Fields Mon, 5 Nov 2007 18:49:20 -0500 + +acl (2.2.49-4.nfsv4-1) unstable; urgency=low + + * Add support for NFSv4 ACLs + + -- J. Bruce Fields Fri, 02 Sep 2006 00:22:07 -0400 + acl (2.2.49-4) unstable; urgency=low * Migrate to having binaries in sbindir (closes: #590240) diff -u -r acl-2.2.49.orig/libacl/acl_extended_file.c acl-2.2.49/libacl/acl_extended_file.c --- acl-2.2.49.orig/libacl/acl_extended_file.c 2011-05-07 00:02:33.093234423 +0100 +++ acl-2.2.49/libacl/acl_extended_file.c 2011-05-06 23:42:05.213231868 +0100 @@ -40,7 +40,7 @@ * NFS4 stuff that's going on. We need a cleaner separation. */ #ifdef USE_NFSV4_TRANS retval = getxattr(path_p, ACL_NFS4_XATTR, NULL, 0); - if (retval < 0 && errno != ENOATTR && errno != EOPNOTSUPP) + if (retval < 0 && errno != ENOATTR && errno != EOPNOTSUPP && errno != EINVAL) return -1; if (retval >= 0) { struct nfs4_acl *nfsacl; diff -u -r acl-2.2.49.orig/libacl/acl_get_fd.c acl-2.2.49/libacl/acl_get_fd.c --- acl-2.2.49.orig/libacl/acl_get_fd.c 2011-05-07 00:02:33.093234423 +0100 +++ acl-2.2.49/libacl/acl_get_fd.c 2011-05-06 23:40:45.269231919 +0100 @@ -51,7 +51,7 @@ #ifdef USE_NFSV4_TRANS retval = fgetxattr(fd, ACL_NFS4_XATTR, ext_acl_p, size_guess); - if(retval == -1 && (errno == ENOATTR || errno == EOPNOTSUPP)) { + if(retval == -1 && (errno == ENOATTR || errno == EOPNOTSUPP || errno == EINVAL)) { nfsv4acls = ACL_NFS4_NOT_USED; retval = fgetxattr(fd, name, ext_acl_p, size_guess); } else { diff -u -r acl-2.2.49.orig/libacl/acl_get_file.c acl-2.2.49/libacl/acl_get_file.c --- acl-2.2.49.orig/libacl/acl_get_file.c 2011-05-07 00:02:33.093234423 +0100 +++ acl-2.2.49/libacl/acl_get_file.c 2011-05-06 23:41:19.225231870 +0100 @@ -63,7 +63,7 @@ return NULL; #ifdef USE_NFSV4_TRANS retval = getxattr(path_p, ACL_NFS4_XATTR, ext_acl_p, size_guess); - if((retval == -1) && (errno == ENOATTR || errno == EOPNOTSUPP)) { + if((retval == -1) && (errno == ENOATTR || errno == EOPNOTSUPP || errno == EINVAL)) { nfsv4acls = ACL_NFS4_NOT_USED; retval = getxattr(path_p, name, ext_acl_p, size_guess); } else { diff -u -r acl-2.2.49.orig/libacl/acl_set_fd.c acl-2.2.49/libacl/acl_set_fd.c --- acl-2.2.49.orig/libacl/acl_set_fd.c 2011-05-07 00:02:33.097233581 +0100 +++ acl-2.2.49/libacl/acl_set_fd.c 2011-05-06 23:41:32.273232819 +0100 @@ -53,7 +53,7 @@ #ifdef USE_NFSV4_TRANS retval = fgetxattr(fd, ACL_NFS4_XATTR, NULL, 0); - if(retval == -1 && (errno == ENOATTR || errno == EOPNOTSUPP)) { + if(retval == -1 && (errno == ENOATTR || errno == EOPNOTSUPP || errno == EINVAL)) { ext_acl_p = __acl_to_xattr(acl_obj_p, &size); } else { char domain[NFS4_MAX_DOMAIN_LEN]; diff -u -r acl-2.2.49.orig/libacl/acl_set_file.c acl-2.2.49/libacl/acl_set_file.c --- acl-2.2.49.orig/libacl/acl_set_file.c 2011-05-07 00:02:33.101232756 +0100 +++ acl-2.2.49/libacl/acl_set_file.c 2011-05-06 23:41:50.745232926 +0100 @@ -100,7 +100,7 @@ return -1; } nacl = get_nfs4_acl(path_p, is_dir); - if (nacl == NULL && (errno == ENOATTR || errno == EOPNOTSUPP)) + if (nacl == NULL && (errno == ENOATTR || errno == EOPNOTSUPP || errno == EINVAL)) ext_acl_p = __acl_to_xattr(acl_obj_p, &size); else { char domain[NFS4_MAX_DOMAIN_LEN];