bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: futimens broken on GNU Hurd (no support for UTIME_NOW/UTIME_OMIT)


From: Eric Blake
Subject: Re: futimens broken on GNU Hurd (no support for UTIME_NOW/UTIME_OMIT)
Date: Wed, 24 Sep 2014 06:25:18 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.0

On 09/24/2014 06:17 AM, Colin Watson wrote:
> On Wed, Sep 24, 2014 at 12:37:58PM +0100, Pádraig Brady wrote:
>> > Sounds like it would come under the few line change "trivial" criteria,
>> > so please send the path on.
> OK, thanks.  Attached here.
> 
> -- Colin Watson address@hidden
> 
> 
> 0001-utimens-handle-lack-of-UTIME_-on-GNU-Hurd.patch
> 
> 
>>From 5141074863eee7a8dbb76921aa1f406cb7168dee Mon Sep 17 00:00:00 2001
> From: Colin Watson <address@hidden>
> Date: Wed, 24 Sep 2014 13:09:50 +0100
> Subject: [PATCH] utimens: handle lack of UTIME_* on GNU/Hurd
> 
> The Hurd has futimens, but does not currently support
> UTIME_NOW/UTIME_OMIT (https://bugs.debian.org/762677).  Resolve these to
> real timestamps if necessary.
> 

>          }
>  # endif
> +# ifdef __GNU__

I'd rather we make this conditional on a feature probe (such as #ifdef
UTIME_NOW_WORKS, suitably defined via a configure-time test) than a
platform probe, so that when the platform is eventually fixed, we quit
using the fallback.

> +      /* Work around lack of UTIME_NOW/UTIME_OMIT support:
> +         <https://bugs.debian.org/762677>.  */
> +      if (adjustment_needed > 0)
> +        {
> +          if (fd < 0 ? stat (file, &st) : fstat (fd, &st))
> +            return -1;
> +          update_timespec (&st, &ts);
> +          /* Note that st is good, in case futimens gives ENOSYS.  */
> +          adjustment_needed = 3;
> +        }

but this part seems reasonable.

> +# endif
>  # if HAVE_UTIMENSAT
>        if (fd < 0)
>          {
> -- 2.1.0
> 

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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