From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zeniv.linux.org.uk ([195.92.253.2]:45009 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1947724AbcBSAZn (ORCPT ); Thu, 18 Feb 2016 19:25:43 -0500 Date: Fri, 19 Feb 2016 00:25:40 +0000 From: Al Viro To: Mike Marshall Cc: Martin Brandenburg , Linus Torvalds , linux-fsdevel , Stephen Rothwell Subject: Re: Orangefs ABI documentation Message-ID: <20160219002539.GX17997@ZenIV.linux.org.uk> References: <20160217231524.GQ17997@ZenIV.linux.org.uk> <20160218000439.GR17997@ZenIV.linux.org.uk> <20160218111122.GS17997@ZenIV.linux.org.uk> <20160218205206.GW17997@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 Thu, Feb 18, 2016 at 04:50:11PM -0500, Mike Marshall wrote: > As part of the attempt to go upstream, this "hubcap" guy you see > in the comments worked on a thing that changes 64bit userspace handles > back and forth into 128bit kernel handles... we did this because > one day, when we have orangefs3, we will be using 128bit uuid-derived > handles, and we believe it is our responsibility to not break the > upstream kernel module. > > Anywho, I bet you are right Al, he messed up this part of it... > I'll look and see if that is really so, and get it fixed. > > -Mike "hubcap" OK... I'll fold the trivial braino fix (op_is_cancel() checking the wrong thing) into "orangefs: delay freeing slot until cancel completes" where it had been introduced, but the rest of it is probably too far and will have to be a couple of commits on top of that queue. Had it been just my tree, I probably would still reorder and fold, but I know that my habits in that respect are rather extreme. FWIW, the scenario spotted by Martin wouldn't cause any real problems, but only because by the time we ended copying to/from daemon service_operation() couldn't have reached resubmit - it only happens if there had been a purge and that can't happen while somebody is inside a control device method. So the original code had been correct, but it was more brittle than I'd like *and* making sure that nobody else sees an op by the time orangefs_clean_interrupted_operation() returns is a good thing. New logics gives that, and avoids the need to play with refcounts on ops. I've pushed that into #orangefs-untested; if that works, please switch your for-next to it.