(forgot the signoff...) On Mon, Jan 31, 2011 at 5:03 PM, Michel Lespinasse <walken@xxxxxxxxxx> wrote: > As Tao Ma noticed, change 5ecfda0 breaks blktrace. This is because > blktrace mmaps a file with PROT_WRITE permissions but without PROT_READ, > so my attempt to not unnecessarity break COW during mlock ended up > causing mlock to fail with a permission problem. > > I am proposing to let mlock ignore vma protection in all cases except > PROT_NONE. In particular, mlock should not fail for PROT_WRITE regions > (as in the blktrace case, which broke at 5ecfda0) or for PROT_EXEC > regions (which seem to me like they were always broken). > > Please review. I am proposing this as a candidate for 2.6.38 inclusion, > because of the behavior change with blktrace. Signed-off-by: Michel Lespinasse <walken@xxxxxxxxxx> > diff --git a/mm/mlock.c b/mm/mlock.c > index 13e81ee..c3924c7f 100644 > --- a/mm/mlock.c > +++ b/mm/mlock.c > @@ -178,6 +178,13 @@ static long __mlock_vma_pages_range(struct vm_area_struct *vma, > if ((vma->vm_flags & (VM_WRITE | VM_SHARED)) == VM_WRITE) > gup_flags |= FOLL_WRITE; > > + /* > + * We want mlock to succeed for regions that have any permissions > + * other than PROT_NONE. > + */ > + if (vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) > + gup_flags |= FOLL_FORCE; > + > if (vma->vm_flags & VM_LOCKED) > gup_flags |= FOLL_MLOCK; -- Michel "Walken" Lespinasse A program is never fully debugged until the last user dies. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href