diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-04-17 12:03:19 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2018-08-29 15:42:23 +0200 |
commit | 4faea239e529d1d6b3b93fbf08d5e90427961a41 (patch) | |
tree | 031bd0905a3e26e458c4f34721ed334ddd7b3fd4 /include/linux/time32.h | |
parent | 185cfaf7641e14af85635bb2750da302e32b04e3 (diff) | |
download | lwn-4faea239e529d1d6b3b93fbf08d5e90427961a41.tar.gz lwn-4faea239e529d1d6b3b93fbf08d5e90427961a41.zip |
y2038: utimes: Rework #ifdef guards for compat syscalls
After changing over to 64-bit time_t syscalls, many architectures will
want compat_sys_utimensat() but not respective handlers for utime(),
utimes() and futimesat(). This adds a new __ARCH_WANT_SYS_UTIME32 to
complement __ARCH_WANT_SYS_UTIME. For now, all 64-bit architectures that
support CONFIG_COMPAT set it, but future 64-bit architectures will not
(tile would not have needed it either, but got removed).
As older 32-bit architectures get converted to using CONFIG_64BIT_TIME,
they will have to use __ARCH_WANT_SYS_UTIME32 instead of
__ARCH_WANT_SYS_UTIME. Architectures using the generic syscall ABI don't
need either of them as they never had a utime syscall.
Since the compat_utimbuf structure is now required outside of
CONFIG_COMPAT, I'm moving it into compat_time.h.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
changed from last version:
- renamed __ARCH_WANT_COMPAT_SYS_UTIME to __ARCH_WANT_SYS_UTIME32
Diffstat (limited to 'include/linux/time32.h')
-rw-r--r-- | include/linux/time32.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/time32.h b/include/linux/time32.h index 0e0d7304d1a8..61904a6c098f 100644 --- a/include/linux/time32.h +++ b/include/linux/time32.h @@ -30,6 +30,11 @@ struct old_itimerspec32 { struct old_timespec32 it_value; }; +struct old_utimbuf32 { + old_time32_t actime; + old_time32_t modtime; +}; + extern int get_old_timespec32(struct timespec64 *, const void __user *); extern int put_old_timespec32(const struct timespec64 *, void __user *); extern int get_old_itimerspec32(struct itimerspec64 *its, |