mlock: operate on any regions with protection != PROT_NONE
authorMichel Lespinasse <walken@google.com>
Tue, 1 Feb 2011 01:03:41 +0000 (17:03 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 1 Feb 2011 23:20:50 +0000 (10:20 +1100)
commitfdf4c587a793ba87935e38e7f25a9540bc9a7b95
treec134f1772c46e2c5214550aaf08c58b36d755a55
parent69bc70d4f97ce82153bed0afc9f432700c60390b
mlock: operate on any regions with protection != PROT_NONE

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).

Signed-off-by: Michel Lespinasse <walken@google.com>
Acked-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mlock.c