|
@@ -434,6 +434,14 @@ __setup("coredump_filter=", coredump_filter_setup);
|
|
|
|
|
|
#include <linux/init_task.h>
|
|
|
|
|
|
+static void mm_init_aio(struct mm_struct *mm)
|
|
|
+{
|
|
|
+#ifdef CONFIG_AIO
|
|
|
+ spin_lock_init(&mm->ioctx_lock);
|
|
|
+ INIT_HLIST_HEAD(&mm->ioctx_list);
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
static struct mm_struct * mm_init(struct mm_struct * mm, struct task_struct *p)
|
|
|
{
|
|
|
atomic_set(&mm->mm_users, 1);
|
|
@@ -447,10 +455,9 @@ static struct mm_struct * mm_init(struct mm_struct * mm, struct task_struct *p)
|
|
|
set_mm_counter(mm, file_rss, 0);
|
|
|
set_mm_counter(mm, anon_rss, 0);
|
|
|
spin_lock_init(&mm->page_table_lock);
|
|
|
- spin_lock_init(&mm->ioctx_lock);
|
|
|
- INIT_HLIST_HEAD(&mm->ioctx_list);
|
|
|
mm->free_area_cache = TASK_UNMAPPED_BASE;
|
|
|
mm->cached_hole_size = ~0UL;
|
|
|
+ mm_init_aio(mm);
|
|
|
mm_init_owner(mm, p);
|
|
|
|
|
|
if (likely(!mm_alloc_pgd(mm))) {
|