On Mon, Jul 16, 2018 at 06:10:52PM +0200, Arnd Bergmann wrote: > When 32-bit architectures get changed to support 64-bit time_t, > utimensat() needs to use the new __kernel_timespec structure as its > argument. > > The older utime(), utimes() and futimesat() system calls don't need a > corresponding change as they are no longer used on C libraries that have > 64-bit time support. > > As we do for the other syscalls that have timespec arguments, we reuse > the 'compat' syscall entry points to implement the traditional four > interfaces, and only leave the new utimensat() as a native handler, > so that the same code gets used on both 32-bit and 64-bit kernels > on each syscall. I wonder about the direction here: wouldn't it be easier to just leave th existing syscall names as-is and introduce a new utimesat64 which uses the new timespec? We can then drop the old legacy utimesat for new architectures added after the cutover.