From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [PATCH v16 09/12] namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution Date: Sat, 16 Nov 2019 01:03:27 +0000 Message-ID: <20191116010327.GZ26530@ZenIV.linux.org.uk> References: <20191116002802.6663-1-cyphar@cyphar.com> <20191116002802.6663-10-cyphar@cyphar.com> Mime-Version: 1.0 Return-path: Content-Disposition: inline In-Reply-To: <20191116002802.6663-10-cyphar@cyphar.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Aleksa Sarai Cc: Song Liu , linux-ia64@vger.kernel.org, linux-sh@vger.kernel.org, Peter Zijlstra , Rasmus Villemoes , Alexei Starovoitov , linux-kernel@vger.kernel.org, David Howells , linux-kselftest@vger.kernel.org, sparclinux@vger.kernel.org, containers@lists.linux-foundation.org, Christian Brauner , linux-api@vger.kernel.org, Shuah Khan , linux-arch@vger.kernel.org, linux-s390@vger.kernel.org, Tycho Andersen , Daniel Borkmann , Jiri Olsa , Alexander Shishkin , Ingo Molnar , linux-arm-kernel@lists.infradead.org, Yonghong Song , linux-mips@vger.kernel.org, Andrii Nakryiko , bpf@vger.kernel.org, l On Sat, Nov 16, 2019 at 11:27:59AM +1100, Aleksa Sarai wrote: > + if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) { > + bool m_retry = read_seqretry(&mount_lock, nd->m_seq); > + bool r_retry = read_seqretry(&rename_lock, nd->r_seq); > + > + /* > + * If there was a racing rename or mount along our > + * path, then we can't be sure that ".." hasn't jumped > + * above nd->root (and so userspace should retry or use > + * some fallback). > + */ > + if (unlikely(m_retry || r_retry)) > + return -EAGAIN; > + } > } > return 0; Elaborate... Do these boolean variables make any sense now, really?