From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Piggin Subject: Re: [PATCH] AFS: Implement shared-writable mmap [try #2] Date: Fri, 18 May 2007 12:29:49 +1000 Message-ID: <464D0F9D.9070303@yahoo.com.au> References: <464BF8B2.3080101@yahoo.com.au> <464B3F2D.9030603@yahoo.com.au> <464B3209.4010003@yahoo.com.au> <464B07EC.4050308@yahoo.com.au> <464AF3F3.30204@yahoo.com.au> <20070516100225.18685.51699.stgit@warthog.cambridge.redhat.com> <17173.1179321391@redhat.com> <19714.1179331928@redhat.com> <23262.1179334587@redhat.com> <31162.1179341123@redhat.com> <6333.1179405001@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: akpm@osdl.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org To: David Howells Return-path: Received: from smtp108.mail.mud.yahoo.com ([209.191.85.218]:27389 "HELO smtp108.mail.mud.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1754953AbXERC3y (ORCPT ); Thu, 17 May 2007 22:29:54 -0400 In-Reply-To: <6333.1179405001@redhat.com> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org David Howells wrote: > Nick Piggin wrote: > > >>No, you shouldn't. We could theoretically introduce a new API for this, >>but I think it would be preferable if you can fix the race in the fs. > > > Actually, I might be able to do better. > > When making a StoreData call to the AFS server, I send all the parameters > first, and at that point, the server will abort it, I think, if permission is > not available, and won't wait for the payload to be delivered. > > So if I tell AF_RXRPC to send the parameter data with an explicit ACK request > and then wait till it's either hard-ACK'd or aborted, I should then be able to > deal with the permissions failure at a state where I have locked *all* the > pages to be sent. > > At that point, I should be able to tell truncate to simple discard all these > locked pages. > > How's that sound? Truncate as it stands still needs to be given unlocked pages. So we would either have to create a new API, or I think preferably it would be nice if you could see if you can first solve it with a private lock? -- SUSE Labs, Novell Inc.