aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/compat.h
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2018-04-17 12:03:19 +0200
committerArnd Bergmann <arnd@arndb.de>2018-08-29 15:42:23 +0200
commit4faea239e529d1d6b3b93fbf08d5e90427961a41 (patch)
tree031bd0905a3e26e458c4f34721ed334ddd7b3fd4 /include/linux/compat.h
parenty2038: Compile utimes()/futimesat() conditionally (diff)
downloadlinux-dev-4faea239e529d1d6b3b93fbf08d5e90427961a41.tar.xz
linux-dev-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 '')
-rw-r--r--include/linux/compat.h7
1 files changed, 1 insertions, 6 deletions
diff --git a/include/linux/compat.h b/include/linux/compat.h
index d376fa8be00d..6fb5abdb87be 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -113,11 +113,6 @@ typedef __compat_gid32_t compat_gid_t;
struct compat_sel_arg_struct;
struct rusage;
-struct compat_utimbuf {
- old_time32_t actime;
- old_time32_t modtime;
-};
-
struct compat_itimerval {
struct old_timeval32 it_interval;
struct old_timeval32 it_value;
@@ -942,7 +937,7 @@ asmlinkage long compat_sys_newlstat(const char __user *filename,
/* __ARCH_WANT_SYSCALL_DEPRECATED */
asmlinkage long compat_sys_time(old_time32_t __user *tloc);
asmlinkage long compat_sys_utime(const char __user *filename,
- struct compat_utimbuf __user *t);
+ struct old_utimbuf32 __user *t);
asmlinkage long compat_sys_futimesat(unsigned int dfd,
const char __user *filename,
struct old_timeval32 __user *t);