]> git.baikalelectronics.ru Git - kernel.git/commit
y2038: Compile utimes()/futimesat() conditionally
authorArnd Bergmann <arnd@arndb.de>
Tue, 17 Apr 2018 07:11:58 +0000 (09:11 +0200)
committerArnd Bergmann <arnd@arndb.de>
Wed, 29 Aug 2018 13:42:23 +0000 (15:42 +0200)
commitd4787b581a4b48865f1fa726218a9e1b45425160
tree2c9be980c5bef6c442529df090e5f5170196b4ce
parentc39139b96db1e268ad86c4fd5e9d4387a0748a51
y2038: Compile utimes()/futimesat() conditionally

There are four generations of utimes() syscalls: utime(), utimes(),
futimesat() and utimensat(), each one being a superset of the previous
one. For y2038 support, we have to add another one, which is the same
as the existing utimensat() but always passes 64-bit times_t based
timespec values.

There are currently 10 architectures that only use utimensat(), two
that use utimes(), futimesat() and utimensat() but not utime(), and 11
architectures that have all four, and those define __ARCH_WANT_SYS_UTIME
in order to get a sys_utime implementation. Since all the new
architectures only want utimensat(), moving all the legacy entry points
into a common __ARCH_WANT_SYS_UTIME guard simplifies the logic. Only alpha
and ia64 grow a tiny bit as they now also get an unused sys_utime(),
but it didn't seem worth the extra complexity of adding yet another
ifdef for those.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/alpha/include/asm/unistd.h
arch/arm/include/asm/unistd.h
arch/ia64/include/asm/unistd.h
fs/utimes.c
include/linux/syscalls.h