projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[deliverable/linux.git]
/
mm
/
memory.c
diff --git
a/mm/memory.c
b/mm/memory.c
index 81dca0083fcd036877f30fde66a0168ade199030..098f00d0546170d6a969d4994b27cfab7a4955dc 100644
(file)
--- a/
mm/memory.c
+++ b/
mm/memory.c
@@
-1102,6
+1102,12
@@
again:
if (!PageAnon(page)) {
if (pte_dirty(ptent)) {
if (!PageAnon(page)) {
if (pte_dirty(ptent)) {
+ /*
+ * oom_reaper cannot tear down dirty
+ * pages
+ */
+ if (unlikely(details && details->ignore_dirty))
+ continue;
force_flush = 1;
set_page_dirty(page);
}
force_flush = 1;
set_page_dirty(page);
}
@@
-1120,8
+1126,8
@@
again:
}
continue;
}
}
continue;
}
- /*
If details->check_mapping, we leave swap entries.
*/
- if (unlikely(details))
+ /*
only check swap_entries if explicitly asked for in details
*/
+ if (unlikely(details
&& !details->check_swap_entries
))
continue;
entry = pte_to_swp_entry(ptent);
continue;
entry = pte_to_swp_entry(ptent);
@@
-1226,7
+1232,7
@@
static inline unsigned long zap_pud_range(struct mmu_gather *tlb,
return addr;
}
return addr;
}
-
static
void unmap_page_range(struct mmu_gather *tlb,
+void unmap_page_range(struct mmu_gather *tlb,
struct vm_area_struct *vma,
unsigned long addr, unsigned long end,
struct zap_details *details)
struct vm_area_struct *vma,
unsigned long addr, unsigned long end,
struct zap_details *details)
@@
-1234,9
+1240,6
@@
static void unmap_page_range(struct mmu_gather *tlb,
pgd_t *pgd;
unsigned long next;
pgd_t *pgd;
unsigned long next;
- if (details && !details->check_mapping)
- details = NULL;
-
BUG_ON(addr >= end);
tlb_start_vma(tlb, vma);
pgd = pgd_offset(vma->vm_mm, addr);
BUG_ON(addr >= end);
tlb_start_vma(tlb, vma);
pgd = pgd_offset(vma->vm_mm, addr);
@@
-2432,7
+2435,7
@@
static inline void unmap_mapping_range_tree(struct rb_root *root,
void unmap_mapping_range(struct address_space *mapping,
loff_t const holebegin, loff_t const holelen, int even_cows)
{
void unmap_mapping_range(struct address_space *mapping,
loff_t const holebegin, loff_t const holelen, int even_cows)
{
- struct zap_details details;
+ struct zap_details details
= { }
;
pgoff_t hba = holebegin >> PAGE_SHIFT;
pgoff_t hlen = (holelen + PAGE_SIZE - 1) >> PAGE_SHIFT;
pgoff_t hba = holebegin >> PAGE_SHIFT;
pgoff_t hlen = (holelen + PAGE_SIZE - 1) >> PAGE_SHIFT;
This page took
0.028429 seconds
and
5
git commands to generate.