From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zeniv.linux.org.uk ([195.92.253.2]:40748 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751991AbcFTGH7 (ORCPT ); Mon, 20 Jun 2016 02:07:59 -0400 Date: Mon, 20 Jun 2016 06:35:30 +0100 From: Al Viro To: "J. R. Okajima" Cc: linux-fsdevel@vger.kernel.org Subject: Re: Q. hlist_bl_add_head_rcu() in d_alloc_parallel() Message-ID: <20160620053530.GI14480@ZenIV.linux.org.uk> References: <13136.1466196630@jrobl> <20160617221614.GE14480@ZenIV.linux.org.uk> <2123.1466313884@jrobl> <20160619165557.GH14480@ZenIV.linux.org.uk> <28627.1466397254@jrobl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <28627.1466397254@jrobl> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Mon, Jun 20, 2016 at 01:34:14PM +0900, J. R. Okajima wrote: > > Al Viro: > > How would processB get past d_wait_lookup()? It would have to have > > By the first d_unhashed() test in the loop, processB doesn't reach > d_wait_lookup(). Huh? What first d_unhashed()... That check is definitely bogus and I'm completely at loss as to WTF is it doing there. Thanks for catching that; this kind of idiotic braino can escape notice when rereading the code again and again, unfortunately ;-/ Fixed, will push to Linus tonight or tomorrow.