Remove down_write(&mm->mmap_sem) in do_set_mempolicy(). This logic
was never correct and it is no longer needed, see the previous patch.

Signed-off-by: Oleg Nesterov <[email protected]>
---
 mm/mempolicy.c |   15 +--------------
 1 files changed, 1 insertions(+), 14 deletions(-)

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 4378c33..9695a9a 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -802,7 +802,6 @@ static long do_set_mempolicy(unsigned short mode, unsigned 
short flags,
                             nodemask_t *nodes)
 {
        struct mempolicy *new, *old;
-       struct mm_struct *mm = current->mm;
        NODEMASK_SCRATCH(scratch);
        int ret;
 
@@ -814,20 +813,11 @@ static long do_set_mempolicy(unsigned short mode, 
unsigned short flags,
                ret = PTR_ERR(new);
                goto out;
        }
-       /*
-        * prevent changing our mempolicy while show_numa_maps()
-        * is using it.
-        * Note:  do_set_mempolicy() can be called at init time
-        * with no 'mm'.
-        */
-       if (mm)
-               down_write(&mm->mmap_sem);
+
        task_lock(current);
        ret = mpol_set_nodemask(new, nodes, scratch);
        if (ret) {
                task_unlock(current);
-               if (mm)
-                       up_write(&mm->mmap_sem);
                mpol_put(new);
                goto out;
        }
@@ -837,9 +827,6 @@ static long do_set_mempolicy(unsigned short mode, unsigned 
short flags,
            nodes_weight(new->v.nodes))
                current->il_next = first_node(new->v.nodes);
        task_unlock(current);
-       if (mm)
-               up_write(&mm->mmap_sem);
-
        mpol_put(old);
        ret = 0;
 out:
-- 
1.5.5.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to