summaryrefslogtreecommitdiffstats
path: root/include/linux/rmap.h
diff options
context:
space:
mode:
authorHugh Dickins <hugh@veritas.com>2005-10-29 18:16:31 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-29 21:40:41 -0700
commitc0718806cf955d5eb51ea77bffb5b21d9bba4972 (patch)
treebd29659bbff68604127439ec8144230a40772621 /include/linux/rmap.h
parent67b02f119df50ffad5a4e9e53ea4c896535862cd (diff)
downloadkernel-crypto-c0718806cf955d5eb51ea77bffb5b21d9bba4972.tar.gz
kernel-crypto-c0718806cf955d5eb51ea77bffb5b21d9bba4972.tar.xz
kernel-crypto-c0718806cf955d5eb51ea77bffb5b21d9bba4972.zip
[PATCH] mm: rmap with inner ptlock
rmap's page_check_address descend without page_table_lock. First just pte_offset_map in case there's no pte present worth locking for, then take page_table_lock for the full check, and pass ptl back to caller in the same style as pte_offset_map_lock. __xip_unmap, page_referenced_one and try_to_unmap_one use pte_unmap_unlock. try_to_unmap_cluster also. page_check_address reformatted to avoid progressive indentation. No use is made of its one error code, return NULL when it fails. Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/rmap.h')
-rw-r--r--include/linux/rmap.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index e80fb7ee6ef..35b30e6c8cf 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -95,8 +95,8 @@ int try_to_unmap(struct page *);
/*
* Called from mm/filemap_xip.c to unmap empty zero page
*/
-pte_t *page_check_address(struct page *, struct mm_struct *, unsigned long);
-
+pte_t *page_check_address(struct page *, struct mm_struct *,
+ unsigned long, spinlock_t **);
/*
* Used by swapoff to help locate where page is expected in vma.