On Tue, Jul 16, 2019 at 06:27:17PM -0700, Palmer Dabbelt wrote: > -int do_fchmodat(int dfd, const char __user *filename, umode_t mode) > +int do_fchmodat4(int dfd, const char __user *filename, umode_t mode, int flags) > { > struct path path; > int error; > - unsigned int lookup_flags = LOOKUP_FOLLOW; > + unsigned int lookup_flags; > + > + if (unlikely(flags & ~AT_SYMLINK_NOFOLLOW)) > + return -EINVAL; > + > + lookup_flags = flags & AT_SYMLINK_NOFOLLOW ? 0 : LOOKUP_FOLLOW; > + Why not do that in sys_fchmodat4() itself, passing lookup_flags to do_fchmodat() and updating old callers to pass it 0 as extra argument?