From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Piggin Subject: Re: [RESEND] [PATCH] VFS: make file->f_pos access atomic on 32bit arch Date: Wed, 8 Oct 2008 16:10:26 +1100 Message-ID: <200810081610.26768.nickpiggin@yahoo.com.au> References: <6.0.0.20.2.20081007140438.0580f110@172.19.0.2> <200810081335.44576.nickpiggin@yahoo.com.au> <6.0.0.20.2.20081008132532.056cc400@172.19.0.2> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Cc: Peter Zijlstra , torvalds@linux-foundation.org, Andrew Morton , Andi Kleen , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, "Aneesh Kumar K.V" , Theodore Ts'o To: Hisashi Hifumi Return-path: Received: from smtp105.mail.mud.yahoo.com ([209.191.85.215]:44721 "HELO smtp105.mail.mud.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1750821AbYJHFKg (ORCPT ); Wed, 8 Oct 2008 01:10:36 -0400 In-Reply-To: <6.0.0.20.2.20081008132532.056cc400@172.19.0.2> Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Wednesday 08 October 2008 15:48, Hisashi Hifumi wrote: > At 11:35 08/10/08, Nick Piggin wrote: > >On Wednesday 08 October 2008 05:59, Peter Zijlstra wrote: > >> The whole point is that such usage is outside the specification and thus > >> we don't strictly need to fix this. > >> > >> So the question Nick is asking is, do we want to slow down the kernel > >> for a few broken user-space applications. Esp. since the race doesn't > >> affect anybody else except the broken users of the file descriptor. > > > >Right you are. That's the fundamental question. The actual details of > >the fix and how likely the race is don't really matter until we > >answer the first question (except to say that the "fix" is never going > >to be free). > > Simultaneous access by two or more writer can corrupt file content, > so this case needs some locks(flock or fcntl) to preserve synchronization > of file content. This is responsibility of user-space application. Right. > But file->f_pos race issue can occur even if multiple threads just read > simultaneously. I think this is not responsibility of user-space > application. To avoid this currently, an application needs some locks to > protect file offset even if it just read a file. So I think f_pos race > should be fixed. What would they possibly hope to be reading, though? IOW. a read(2) still *writes* to the fpos which userspace is very much aware of, and in exactly the same way as write(2), so userspace should require the same obligations to protect it in both cases I think. If you say they must protect file content for writes, then it is valid to say that they must protect fd data as well (ie. file offset).