Commit d28eb9c8 authored by Davidlohr Bueso's avatar Davidlohr Bueso Committed by Linus Torvalds

mm/memory-failure: share the i_mmap_rwsem

No brainer conversion: collect_procs_file() only schedules a process for
later kill, share the lock, similarly to the anon vma variant.
Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
Acked-by: default avatar"Kirill A. Shutemov" <kirill@shutemov.name>
Acked-by: default avatarHugh Dickins <hughd@google.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Acked-by: default avatarMel Gorman <mgorman@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 874bfcaf
...@@ -466,7 +466,7 @@ static void collect_procs_file(struct page *page, struct list_head *to_kill, ...@@ -466,7 +466,7 @@ static void collect_procs_file(struct page *page, struct list_head *to_kill,
struct task_struct *tsk; struct task_struct *tsk;
struct address_space *mapping = page->mapping; struct address_space *mapping = page->mapping;
i_mmap_lock_write(mapping); i_mmap_lock_read(mapping);
read_lock(&tasklist_lock); read_lock(&tasklist_lock);
for_each_process(tsk) { for_each_process(tsk) {
pgoff_t pgoff = page_to_pgoff(page); pgoff_t pgoff = page_to_pgoff(page);
...@@ -488,7 +488,7 @@ static void collect_procs_file(struct page *page, struct list_head *to_kill, ...@@ -488,7 +488,7 @@ static void collect_procs_file(struct page *page, struct list_head *to_kill,
} }
} }
read_unlock(&tasklist_lock); read_unlock(&tasklist_lock);
i_mmap_unlock_write(mapping); i_mmap_unlock_read(mapping);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment