From: Linus Torvalds Date: Fri, 6 Apr 2018 18:07:08 +0000 (-0700) Subject: Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=9022ca6b1129da44e3d5c4fa779b8bb9ceabe2ce;p=openwrt%2Fstaging%2Fblogic.git Merge branch 'work.misc' of git://git./linux/kernel/git/viro/vfs Pull misc vfs updates from Al Viro: "Assorted stuff, including Christoph's I_DIRTY patches" * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: fs: move I_DIRTY_INODE to fs.h ubifs: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) call ntfs: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) call gfs2: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) calls fs: fold open_check_o_direct into do_dentry_open vfs: Replace stray non-ASCII homoglyph characters with their ASCII equivalents vfs: make sure struct filename->iname is word-aligned get rid of pointless includes of fs_struct.h [poll] annotate SAA6588_CMD_POLL users --- 9022ca6b1129da44e3d5c4fa779b8bb9ceabe2ce diff --cc fs/internal.h index 980d005b21b4,5e797281d941..e08972db0303 --- a/fs/internal.h +++ b/fs/internal.h @@@ -119,13 -111,6 +119,12 @@@ extern struct file *do_filp_open(int df extern struct file *do_file_open_root(struct dentry *, struct vfsmount *, const char *, const struct open_flags *); +long do_sys_ftruncate(unsigned int fd, loff_t length, int small); +long do_faccessat(int dfd, const char __user *filename, int mode); +int do_fchmodat(int dfd, const char __user *filename, umode_t mode); +int do_fchownat(int dfd, const char __user *filename, uid_t user, gid_t group, + int flag); + - extern int open_check_o_direct(struct file *f); extern int vfs_open(const struct path *, struct file *, const struct cred *); extern struct file *filp_clone_open(struct file *); diff --cc fs/open.c index d0e955b558ad,f587f3dbfc7f..c5ee7cd60424 --- a/fs/open.c +++ b/fs/open.c @@@ -719,21 -682,6 +719,11 @@@ out return error; } +SYSCALL_DEFINE3(fchown, unsigned int, fd, uid_t, user, gid_t, group) +{ + return ksys_fchown(fd, user, group); +} + - int open_check_o_direct(struct file *f) - { - /* NB: we're sure to have correct a_ops only after f_op->open */ - if (f->f_flags & O_DIRECT) { - if (!f->f_mapping->a_ops || !f->f_mapping->a_ops->direct_IO) - return -EINVAL; - } - return 0; - } - static int do_dentry_open(struct file *f, struct inode *inode, int (*open)(struct inode *, struct file *),