From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zeniv.linux.org.uk ([195.92.253.2]:49854 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751166AbcBSWc2 (ORCPT ); Fri, 19 Feb 2016 17:32:28 -0500 Date: Fri, 19 Feb 2016 22:32:26 +0000 From: Al Viro To: Mike Marshall Cc: Martin Brandenburg , Linus Torvalds , linux-fsdevel , Stephen Rothwell Subject: Re: Orangefs ABI documentation Message-ID: <20160219223226.GD17997@ZenIV.linux.org.uk> References: <20160218111122.GS17997@ZenIV.linux.org.uk> <20160218205206.GW17997@ZenIV.linux.org.uk> <20160219002539.GX17997@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Feb 19, 2016 at 05:11:29PM -0500, Mike Marshall wrote: > Boo! Now a new problem is uncovered, I don't have a handle on it yet. > Now it is possible to create a broken file on the orangefs server > across a restart of the client-core. I suspect that it's your "getattr after create and leave dentry negative if that getattr fails". Might make sense to d_drop() the sucker in case of such late failure - or mark it so that subsequent d_revalidate() would *not* skip getattr, despite NULL ->d_inode. Incidentally, why does your ->d_revalidate() bother with d_drop()? Just have it return 0 and let the caller DTRT...