···12811281 * O_LARGEFILE flag.12821282 */12831283asmlinkage long12841284-compat_sys_open(const char __user *filename, int flags, int mode)12841284+compat_sys_open(const char __user *filename, int flags, umode_t mode)12851285{12861286 return do_sys_open(AT_FDCWD, filename, flags, mode);12871287}···12911291 * O_LARGEFILE flag.12921292 */12931293asmlinkage long12941294-compat_sys_openat(unsigned int dfd, const char __user *filename, int flags, int mode)12941294+compat_sys_openat(unsigned int dfd, const char __user *filename, int flags, umode_t mode)12951295{12961296 return do_sys_open(dfd, filename, flags, mode);12971297}
+1-1
fs/internal.h
···8888extern void release_open_intent(struct nameidata *);8989struct open_flags {9090 int open_flag;9191- int mode;9191+ umode_t mode;9292 int acc_mode;9393 int intent;9494};
···877877878878EXPORT_SYMBOL(fd_install);879879880880-static inline int build_open_flags(int flags, int mode, struct open_flags *op)880880+static inline int build_open_flags(int flags, umode_t mode, struct open_flags *op)881881{882882 int lookup_flags = 0;883883 int acc_mode;···948948 * have to. But in generally you should not do this, so please move949949 * along, nothing to see here..950950 */951951-struct file *filp_open(const char *filename, int flags, int mode)951951+struct file *filp_open(const char *filename, int flags, umode_t mode)952952{953953 struct open_flags op;954954 int lookup = build_open_flags(flags, mode, &op);···970970}971971EXPORT_SYMBOL(file_open_root);972972973973-long do_sys_open(int dfd, const char __user *filename, int flags, int mode)973973+long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)974974{975975 struct open_flags op;976976 int lookup = build_open_flags(flags, mode, &op);···994994 return fd;995995}996996997997-SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)997997+SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, umode_t, mode)998998{999999 long ret;10001000···10081008}1009100910101010SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags,10111011- int, mode)10111011+ umode_t, mode)10121012{10131013 long ret;10141014···10271027 * For backward compatibility? Maybe this should be moved10281028 * into arch/i386 instead?10291029 */10301030-SYSCALL_DEFINE2(creat, const char __user *, pathname, int, mode)10301030+SYSCALL_DEFINE2(creat, const char __user *, pathname, umode_t, mode)10311031{10321032 return sys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode);10331033}
+2-2
include/linux/compat.h
···422422asmlinkage long compat_sys_vmsplice(int fd, const struct compat_iovec __user *,423423 unsigned int nr_segs, unsigned int flags);424424asmlinkage long compat_sys_open(const char __user *filename, int flags,425425- int mode);425425+ umode_t mode);426426asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename,427427- int flags, int mode);427427+ int flags, umode_t mode);428428asmlinkage long compat_sys_open_by_handle_at(int mountdirfd,429429 struct file_handle __user *handle,430430 int flags);
···517517 loff_t __user *offset, size_t count);518518asmlinkage long sys_readlink(const char __user *path,519519 char __user *buf, int bufsiz);520520-asmlinkage long sys_creat(const char __user *pathname, int mode);520520+asmlinkage long sys_creat(const char __user *pathname, umode_t mode);521521asmlinkage long sys_open(const char __user *filename,522522- int flags, int mode);522522+ int flags, umode_t mode);523523asmlinkage long sys_close(unsigned int fd);524524asmlinkage long sys_access(const char __user *filename, int mode);525525asmlinkage long sys_vhangup(void);···582582asmlinkage long sys_pwritev(unsigned long fd, const struct iovec __user *vec,583583 unsigned long vlen, unsigned long pos_l, unsigned long pos_h);584584asmlinkage long sys_getcwd(char __user *buf, unsigned long size);585585-asmlinkage long sys_mkdir(const char __user *pathname, int mode);585585+asmlinkage long sys_mkdir(const char __user *pathname, umode_t mode);586586asmlinkage long sys_chdir(const char __user *filename);587587asmlinkage long sys_fchdir(unsigned int fd);588588asmlinkage long sys_rmdir(const char __user *pathname);···757757758758asmlinkage long sys_mknodat(int dfd, const char __user * filename, umode_t mode,759759 unsigned dev);760760-asmlinkage long sys_mkdirat(int dfd, const char __user * pathname, int mode);760760+asmlinkage long sys_mkdirat(int dfd, const char __user * pathname, umode_t mode);761761asmlinkage long sys_unlinkat(int dfd, const char __user * pathname, int flag);762762asmlinkage long sys_symlinkat(const char __user * oldname,763763 int newdfd, const char __user * newname);···773773asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,774774 gid_t group, int flag);775775asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,776776- int mode);776776+ umode_t mode);777777asmlinkage long sys_newfstatat(int dfd, const char __user *filename,778778 struct stat __user *statbuf, int flag);779779asmlinkage long sys_fstatat64(int dfd, const char __user *filename,