From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: [PATCH 5/5] fs/proc/task_mmu.c: change m_start() to rely on priv->mm and avoid mm_access() Date: Sun, 3 Aug 2014 23:20:47 +0200 Message-ID: <20140803212047.GF13330@redhat.com> References: <1407010227-2269-1-git-send-email-kirill@shutemov.name> <20140803164452.GA14626@redhat.com> <20140803211843.GA13330@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Alexander Viro , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, David Howells , Peter Zijlstra , Sasha Levin , Cyrill Gorcunov , "David S. Miller" , "Kirill A. Shutemov" To: "Kirill A. Shutemov" Return-path: Content-Disposition: inline In-Reply-To: <20140803211843.GA13330@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Finally we can change m_start() to avoid mm_access(), it can simply do atomic_inc_not_zero(mm_users). I'll try to verify, if this is the only change we need, then this one line change doesn't deserve a separate patch. Signed-off-by: Oleg Nesterov --- fs/proc/task_mmu.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 1cc623d..7ec8eb5 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -165,9 +165,9 @@ static void *m_start(struct seq_file *m, loff_t *pos) if (!priv->task) return ERR_PTR(-ESRCH); - mm = mm_access(priv->task, PTRACE_MODE_READ); - if (!mm || IS_ERR(mm)) - return mm; + mm = priv->mm; + if (!mm || !atomic_inc_not_zero(&mm->mm_users)) + return NULL; down_read(&mm->mmap_sem); tail_vma = get_gate_vma(mm); -- 1.5.5.1