git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
include
/
linux
/
rmap.h
diff --git
a/include/linux/rmap.h
b/include/linux/rmap.h
index
291d36c
..
bdd2772
100644
(file)
--- a/
include/linux/rmap.h
+++ b/
include/linux/rmap.h
@@
-4,9
+4,9
@@
* Declarations for Reverse Mapping functions in mm/rmap.c
*/
* Declarations for Reverse Mapping functions in mm/rmap.c
*/
-#include <linux/config.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/list.h>
#include <linux/slab.h>
+#include <linux/mm.h>
#include <linux/spinlock.h>
/*
#include <linux/spinlock.h>
/*
@@
-30,11
+30,11
@@
struct anon_vma {
#ifdef CONFIG_MMU
#ifdef CONFIG_MMU
-extern
kmem_cache_t
*anon_vma_cachep;
+extern
struct kmem_cache
*anon_vma_cachep;
static inline struct anon_vma *anon_vma_alloc(void)
{
static inline struct anon_vma *anon_vma_alloc(void)
{
- return kmem_cache_alloc(anon_vma_cachep,
SLAB
_KERNEL);
+ return kmem_cache_alloc(anon_vma_cachep,
GFP
_KERNEL);
}
static inline void anon_vma_free(struct anon_vma *anon_vma)
}
static inline void anon_vma_free(struct anon_vma *anon_vma)
@@
-70,8
+70,9
@@
void __anon_vma_link(struct vm_area_struct *);
* rmap interfaces called when adding or removing pte of page
*/
void page_add_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
* rmap interfaces called when adding or removing pte of page
*/
void page_add_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
+void page_add_new_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
void page_add_file_rmap(struct page *);
void page_add_file_rmap(struct page *);
-void page_remove_rmap(struct page *);
+void page_remove_rmap(struct page *
, struct vm_area_struct *
);
/**
* page_dup_rmap - duplicate pte mapping to a page
/**
* page_dup_rmap - duplicate pte mapping to a page
@@
-89,21
+90,41
@@
static inline void page_dup_rmap(struct page *page)
* Called from mm/vmscan.c to handle paging out
*/
int page_referenced(struct page *, int is_locked);
* Called from mm/vmscan.c to handle paging out
*/
int page_referenced(struct page *, int is_locked);
-int try_to_unmap(struct page *);
+int try_to_unmap(struct page *, int ignore_refs);
+
+/*
+ * Called from mm/filemap_xip.c to unmap empty zero page
+ */
+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.
*/
unsigned long page_address_in_vma(struct page *, struct vm_area_struct *);
/*
* Used by swapoff to help locate where page is expected in vma.
*/
unsigned long page_address_in_vma(struct page *, struct vm_area_struct *);
+/*
+ * Cleans the PTEs of shared mappings.
+ * (and since clean PTEs should also be readonly, write protects them too)
+ *
+ * returns the number of cleaned PTEs.
+ */
+int page_mkclean(struct page *);
+
#else /* !CONFIG_MMU */
#define anon_vma_init() do {} while (0)
#define anon_vma_prepare(vma) (0)
#define anon_vma_link(vma) do {} while (0)
#else /* !CONFIG_MMU */
#define anon_vma_init() do {} while (0)
#define anon_vma_prepare(vma) (0)
#define anon_vma_link(vma) do {} while (0)
-#define page_referenced(page,l) TestClearPageReferenced(page)
-#define try_to_unmap(page) SWAP_FAIL
+#define page_referenced(page,l) TestClearPageReferenced(page)
+#define try_to_unmap(page, refs) SWAP_FAIL
+
+static inline int page_mkclean(struct page *page)
+{
+ return 0;
+}
+
#endif /* CONFIG_MMU */
#endif /* CONFIG_MMU */