From cb4245dfee77d60655e7a6e630c23c0d9ff09aca Mon Sep 17 00:00:00 2001 From: GNU Libc Maintainers Date: Tue, 5 May 2020 19:12:38 +0100 Subject: [PATCH] git-trunc-times Committed for glibc 2.32 commit e095db0bc6c53a0b7ac3d915c5feb7678049dc33 Author: Samuel Thibault Date: Sun Mar 29 19:42:55 2020 +0200 hurd: Make O_TRUNC update mtime/ctime * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Call __file_utimens after __file_set_size. Gbp-Pq: Topic hurd-i386 Gbp-Pq: Name git-trunc-times.diff --- hurd/lookup-retry.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c index 9c49075fe..d001b3367 100644 --- a/hurd/lookup-retry.c +++ b/hurd/lookup-retry.c @@ -178,8 +178,17 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) /* We got a successful translation. Now apply any open-time action flags we were passed. */ - if (!err && (flags & O_TRUNC)) /* Asked to truncate the file. */ - err = __file_set_size (*result, 0); + if (!err && (flags & O_TRUNC)) + { + /* Asked to truncate the file. */ + err = __file_set_size (*result, 0); + if (!err) + { + struct timespec atime = { 0, UTIME_OMIT }; + struct timespec mtime = { 0, UTIME_NOW }; + __file_utimens (*result, atime, mtime); + } + } if (err) __mach_port_deallocate (__mach_task_self (), *result); -- 2.30.2