From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751949AbdLKH3D (ORCPT ); Mon, 11 Dec 2017 02:29:03 -0500 Received: from [195.159.176.226] ([195.159.176.226]:50248 "EHLO blaine.gmane.org" rhost-flags-FAIL-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1750709AbdLKH3C (ORCPT ); Mon, 11 Dec 2017 02:29:02 -0500 X-Injected-Via-Gmane: http://gmane.org/ To: linux-kernel@vger.kernel.org From: Christophe JAILLET Subject: Re: [PATCH] mm: Release a semaphore in 'get_vaddr_frames()' Date: Mon, 11 Dec 2017 08:28:51 +0100 Message-ID: References: <20171209070941.31828-1-christophe.jaillet@wanadoo.fr> <20171210094545.GW20234@dhcp22.suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@blaine.gmane.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 In-Reply-To: <20171210094545.GW20234@dhcp22.suse.cz> Content-Language: en-US Cc: linux-mm@kvack.org, kernel-janitors@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 10/12/2017 à 10:45, Michal Hocko a écrit : > On Sat 09-12-17 08:09:41, Christophe JAILLET wrote: >> A semaphore is acquired before this check, so we must release it before >> leaving. >> >> Fixes: b7f0554a56f2 ("mm: fail get_vaddr_frames() for filesystem-dax mappings") >> Signed-off-by: Christophe JAILLET >> --- >> -- Untested -- >> >> The wording of the commit entry and log description could be improved >> but I didn't find something better. > The changelog is ok imo. > >> --- >> mm/frame_vector.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/mm/frame_vector.c b/mm/frame_vector.c >> index 297c7238f7d4..e0c5e659fa82 100644 >> --- a/mm/frame_vector.c >> +++ b/mm/frame_vector.c >> @@ -62,8 +62,10 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, >> * get_user_pages_longterm() and disallow it for filesystem-dax >> * mappings. >> */ >> - if (vma_is_fsdax(vma)) >> + if (vma_is_fsdax(vma)) { >> + up_read(&mm->mmap_sem); >> return -EOPNOTSUPP; >> + } > Is there any reason to do a different error handling than other error > paths? Namely not going without goto out? You are right, I misread the code after out:. I thought it would override the returned value, but I was wrong. 'goto out' is definitively better, IMHO. I'll propose a v2. CJ