On Mon 21-08-17 15:37:04, Ross Zwisler wrote: > > diff --git a/mm/mmap.c b/mm/mmap.c > > index f19efcf75418..18453c04b09f 100644 > > --- a/mm/mmap.c > > +++ b/mm/mmap.c > > @@ -1423,12 +1423,17 @@ unsigned long do_mmap(struct file *file, unsigned long addr, > > return -ENODEV; > > if (vm_flags & (VM_GROWSDOWN|VM_GROWSUP)) > > return -EINVAL; > > + if (!(vm_flags & VM_SHARED) && (vm_flags & VM_SYNC)) > > + return -EINVAL; > > I know this will be reworked with Dan's new mmap() interface, but I was > curious what the !(vm_flags & VM_SHARED) check here was for. We're in a > MAP_PRIVATE case, so is it ever possible for VM_SHARED to be set in vm_flags? > I tried to make this happen with some various test scenarios, but wasn't able. I was also caught by this :). Check how MAP_SHARED case above falls through to the MAP_PRIVATE case... Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR