* lib/file-has-acl.c (file_has_acl) [HP-UX]: Also test against ENOTSUP.
* lib/set-mode-acl.c (qset_acl) [HP-UX]: Likewise.
* lib/copy-acl.c (qcopy_acl) [HP-UX]: Test for the errno values
explicitly.
* tests/test-sameacls.c (main) [HP-UX]: Also test against ENOTSUP.
Reported in <http://debbugs.gnu.org/db/60/6053.html>.
+2011-06-12 Bruno Haible <bruno@clisp.org>
+
+ acl: Complete the 2010-08-10 fix.
+ * lib/file-has-acl.c (file_has_acl) [HP-UX]: Also test against ENOTSUP.
+ * lib/set-mode-acl.c (qset_acl) [HP-UX]: Likewise.
+ * lib/copy-acl.c (qcopy_acl) [HP-UX]: Test for the errno values
+ explicitly.
+ * tests/test-sameacls.c (main) [HP-UX]: Also test against ENOTSUP.
+ Reported in <http://debbugs.gnu.org/db/60/6053.html>.
+
2011-06-12 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Comments.
if (count < 0)
{
- if (ACL_NOT_WELL_SUPPORTED (errno))
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
{
count = 0;
break;
{
int saved_errno = errno;
- if (ACL_NOT_WELL_SUPPORTED (errno))
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
{
struct stat source_statbuf;
count = getacl (name, 0, NULL);
if (count < 0)
- return (errno == ENOSYS || errno == EOPNOTSUPP ? 0 : -1);
+ {
+ /* ENOSYS is seen on newer HP-UX versions.
+ EOPNOTSUPP is typically seen on NFS mounts.
+ ENOTSUP was seen on Quantum StorNext file systems (cvfs). */
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+ return 0;
+ else
+ return -1;
+ }
if (count == 0)
return 0;
ret = setacl (name, sizeof (entries) / sizeof (struct acl_entry), entries);
if (ret < 0)
{
- if (errno == ENOSYS || errno == EOPNOTSUPP)
+ if (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
return chmod_or_fchmod (name, desc, mode);
return -1;
}
int count2;
count1 = getacl (file1, 0, NULL);
- if (count1 < 0 && (errno == ENOSYS || errno == EOPNOTSUPP))
+ if (count1 < 0
+ && (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP))
count1 = 0;
count2 = getacl (file2, 0, NULL);
- if (count2 < 0 && (errno == ENOSYS || errno == EOPNOTSUPP))
+ if (count2 < 0
+ && (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP))
count2 = 0;
if (count1 < 0)