bug-gnulib
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]