From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 63484 invoked by alias); 28 Feb 2020 17:06:54 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 63473 invoked by uid 89); 28 Feb 2020 17:06:53 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 spammy=2025 X-HELO: mail-out.m-online.net Date: Fri, 28 Feb 2020 17:06:00 -0000 From: Lukasz Majewski To: Joseph Myers , Paul Eggert , Adhemerval Zanella Cc: Alistair Francis , Alistair Francis , GNU C Library , Siddhesh Poyarekar , Florian Weimer , Florian Weimer , Zack Weinberg , Carlos O'Donell , Andreas Schwab , Vineet Gupta Subject: Re: [PATCH 2/3] y2038: linux: Provide __lutimes64 implementation Message-ID: <20200228180646.706363f5@jawa> In-Reply-To: <20200217131735.18180-3-lukma@denx.de> References: <20200217131735.18180-1-lukma@denx.de> <20200217131735.18180-3-lukma@denx.de> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/YqPOS5V/6_YQOBX9/QT.enN"; protocol="application/pgp-signature" X-SW-Source: 2020-02/txt/msg01089.txt.bz2 --Sig_/YqPOS5V/6_YQOBX9/QT.enN Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-length: 3352 Dear All, > This conversion patch for supporting 64 bit time for lutimes mostly > differs from the work performed for futimes (when providing > __futimes64) with adding the AT_SYMLINK_NOFOLLOW flag to utimensat. > It also supports passing file name instead of file descriptor number, > but this is not relevant for utimensat used to implement it. >=20 > All the design and conversion decisions are exactly the same as for > futimens conversion. > --- > include/time.h | 3 +++ > sysdeps/unix/sysv/linux/lutimes.c | 37 > ++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 13 > deletions(-) >=20 > diff --git a/include/time.h b/include/time.h > index c24066bf3a..685075f095 100644 > --- a/include/time.h > +++ b/include/time.h > @@ -211,10 +211,13 @@ libc_hidden_proto (__utimensat64_helper); >=20=20 > #if __TIMESIZE =3D=3D 64 > # define __futimes64 __futimes > +# define __lutimes64 __lutimes > # define __futimens64 __futimens > #else > extern int __futimes64 (int fd, const struct __timeval64 tvp64[2]); > libc_hidden_proto (__futimes64); > +extern int __lutimes64 (const char *file, const struct __timeval64 > tvp64[2]); +libc_hidden_proto (__lutimes64); > extern int __futimens64 (int fd, const struct __timespec64 tsp[2]); > libc_hidden_proto (__futimens64); > #endif > diff --git a/sysdeps/unix/sysv/linux/lutimes.c > b/sysdeps/unix/sysv/linux/lutimes.c index 59ab1f065a..778e4e61d8 > 100644 --- a/sysdeps/unix/sysv/linux/lutimes.c > +++ b/sysdeps/unix/sysv/linux/lutimes.c > @@ -20,25 +20,36 @@ > #include > #include > #include > -#include > -#include >=20=20 > +int > +__lutimes64 (const char *file, const struct __timeval64 tvp64[2]) > +{ > + struct __timespec64 ts64[2]; > + if (tvp64 !=3D NULL) > + { > + ts64[0] =3D timeval64_to_timespec64 (tvp64[0]); > + ts64[1] =3D timeval64_to_timespec64 (tvp64[1]); > + } > + > + return __utimensat64_helper (AT_FDCWD, file, tvp64 ? &ts64[0] : > NULL, > + AT_SYMLINK_NOFOLLOW); > +} > + > +#if __TIMESIZE !=3D 64 > +libc_hidden_def (__lutimes64) >=20=20 > int > -lutimes (const char *file, const struct timeval tvp[2]) > +__lutimes (const char *file, const struct timeval tvp[2]) > { > - /* The system call espects timespec, not timeval. */ > - struct timespec ts[2]; > + struct __timeval64 tv64[2]; > + > if (tvp !=3D NULL) > { > - if (tvp[0].tv_usec < 0 || tvp[0].tv_usec >=3D 1000000 > - || tvp[1].tv_usec < 0 || tvp[1].tv_usec >=3D 1000000) > - return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); > - > - TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]); > - TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]); > + tv64[0] =3D valid_timeval_to_timeval64 (tvp[0]); > + tv64[1] =3D valid_timeval_to_timeval64 (tvp[1]); > } >=20=20 > - return INLINE_SYSCALL (utimensat, 4, AT_FDCWD, file, tvp ? ts : > NULL, > - AT_SYMLINK_NOFOLLOW); > + return __lutimes64 (file, tvp ? &tv64[0] : NULL); > } > +#endif > +weak_alias (__lutimes, lutimes) Gentle ping on this patch. Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de --Sig_/YqPOS5V/6_YQOBX9/QT.enN Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature Content-length: 488 -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEgAyFJ+N6uu6+XupJAR8vZIA0zr0FAl5ZSKYACgkQAR8vZIA0 zr3dzQf+NXp8uputwDigcmyo+R6nDRvhiNybabNQliUulg53hf9nTPojGTwJ0YY3 fGUljGILHN90IaVecjGAxmENCnTCl0jm5IFBThLOL51vLCVA7WOyTKNuXA/hDQy7 E5Q53rto5oFK73iW147260CFgOO3seWrvxJQ1ScJPfFRICtbBZZwopcktq7s6Khe DVk6R9I3NgmzVwjyb7R5PTRYbIAkt0q+y9E9KnW3lc8EfsHSg7GQX0p3Sas/e39p zokyIUKVtDW5ujIqdnOFXTr2q9NWs5cnP8OO4eh7CkESq2iHePOtkyHF2X/iKpFf mi6br2L9njT5vbhaNNe0RMfs8KByTw== =pb2u -----END PGP SIGNATURE----- --Sig_/YqPOS5V/6_YQOBX9/QT.enN--