[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: qset_acl failure on Solaris 10
From: |
Pádraig Brady |
Subject: |
Re: qset_acl failure on Solaris 10 |
Date: |
Mon, 31 Aug 2009 00:31:00 +0100 |
User-agent: |
Thunderbird 2.0.0.6 (X11/20071008) |
Bruno Haible wrote:
> On an NFSv3 file system on Solaris 10 a gettext fails during qset_acl:
>
> msgmerge: preserving permissions for `mm-u-2.po~': Operation not supported on
> transport endpoint
> FAIL: msgmerge-update-2
>
> This fixes it.
>
>
> 2009-08-30 Bruno Haible <address@hidden>
>
> Fix an unnecessary error on Solaris 10 on NFSv3 file systems.
> * lib/set-mode-acl.c (qset_acl) [Solaris 10 new]: Treat EOPNOTSUPP like
> ENOSYS.
>
> --- lib/set-mode-acl.c.orig 2009-08-31 00:48:33.000000000 +0200
> +++ lib/set-mode-acl.c 2009-08-31 00:21:09.000000000 +0200
> @@ -234,7 +234,7 @@
> acl_free (aclp);
> if (ret < 0)
> {
> - if (saved_errno == ENOSYS)
> + if (saved_errno == ENOSYS || saved_errno == EOPNOTSUPP)
> return chmod_or_fchmod (name, desc, mode);
> errno = saved_errno;
> return -1;
I was wondering about this general issue a couple of days ago when pondering:
http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=2bc0f3c
At the application level we often want to check for this
"not supported" condition while not caring where the failure occurred.
I.E. I was wondering whether apps should usually be calling
something like:
bool not_supported (int error)
{
switch (error)
{
case ENOSYS: /* Function not implemented */
case EOPNOTSUPP: /* Operation not supported */
case ENOTSUP: /* Operation not supported */
case ENOTTY: /* Inappropriate ioctl for device */
return true;
default:
return false;
}
}
cheers,
Pádraig.