diff options
-rw-r--r-- | fs/open.c | 7 | ||||
-rw-r--r-- | include/asm-ia64/fcntl.h | 2 | ||||
-rw-r--r-- | include/linux/fcntl.h | 4 |
3 files changed, 10 insertions, 3 deletions
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/vfs.h> | 21 | #include <linux/vfs.h> |
22 | #include <asm/uaccess.h> | 22 | #include <asm/uaccess.h> |
23 | #include <linux/fs.h> | 23 | #include <linux/fs.h> |
24 | #include <linux/personality.h> | ||
24 | #include <linux/pagemap.h> | 25 | #include <linux/pagemap.h> |
25 | #include <linux/syscalls.h> | 26 | #include <linux/syscalls.h> |
26 | 27 | ||
@@ -935,9 +936,9 @@ asmlinkage long sys_open(const char __user * filename, int flags, int mode) | |||
935 | char * tmp; | 936 | char * tmp; |
936 | int fd, error; | 937 | int fd, error; |
937 | 938 | ||
938 | #if BITS_PER_LONG != 32 | 939 | if (force_o_largefile()) |
939 | flags |= O_LARGEFILE; | 940 | flags |= O_LARGEFILE; |
940 | #endif | 941 | |
941 | tmp = getname(filename); | 942 | tmp = getname(filename); |
942 | fd = PTR_ERR(tmp); | 943 | fd = PTR_ERR(tmp); |
943 | if (!IS_ERR(tmp)) { | 944 | if (!IS_ERR(tmp)) { |
diff --git a/include/asm-ia64/fcntl.h b/include/asm-ia64/fcntl.h index d193981bb1d8..c9f8d835d0cc 100644 --- a/include/asm-ia64/fcntl.h +++ b/include/asm-ia64/fcntl.h | |||
@@ -81,4 +81,6 @@ struct flock { | |||
81 | 81 | ||
82 | #define F_LINUX_SPECIFIC_BASE 1024 | 82 | #define F_LINUX_SPECIFIC_BASE 1024 |
83 | 83 | ||
84 | #define force_o_largefile() ( ! (current->personality & PER_LINUX32) ) | ||
85 | |||
84 | #endif /* _ASM_IA64_FCNTL_H */ | 86 | #endif /* _ASM_IA64_FCNTL_H */ |
diff --git a/include/linux/fcntl.h b/include/linux/fcntl.h index 704fb76b6334..8a7c82151de9 100644 --- a/include/linux/fcntl.h +++ b/include/linux/fcntl.h | |||
@@ -25,6 +25,10 @@ | |||
25 | 25 | ||
26 | #ifdef __KERNEL__ | 26 | #ifdef __KERNEL__ |
27 | 27 | ||
28 | #ifndef force_o_largefile | ||
29 | #define force_o_largefile() (BITS_PER_LONG != 32) | ||
30 | #endif | ||
31 | |||
28 | #if BITS_PER_LONG == 32 | 32 | #if BITS_PER_LONG == 32 |
29 | #define IS_GETLK32(cmd) ((cmd) == F_GETLK) | 33 | #define IS_GETLK32(cmd) ((cmd) == F_GETLK) |
30 | #define IS_SETLK32(cmd) ((cmd) == F_SETLK) | 34 | #define IS_SETLK32(cmd) ((cmd) == F_SETLK) |