From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: Update of file offset on write() etc. is non-atomic with I/O Date: Mon, 3 Mar 2014 23:42:07 +0000 Message-ID: <20140303234207.GQ18016@ZenIV.linux.org.uk> References: <20140303210359.26624.qmail@science.horizon.com> <20140303212642.GJ18016@ZenIV.linux.org.uk> <20140303220106.GL18016@ZenIV.linux.org.uk> <20140303232858.GO18016@ZenIV.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: George Spelvin , linux-fsdevel , Linux Kernel Mailing List To: Linus Torvalds Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Mon, Mar 03, 2014 at 03:34:43PM -0800, Linus Torvalds wrote: > On Mon, Mar 3, 2014 at 3:28 PM, Al Viro wrote: > > > > Umm... I would be very surprised if that worked well. You have just > > forced fdget() to comply to the ABI. And unless that has such structs > > returned in register pairs, there's no way for compiler to do about > > that. > > Register pairs are very much a common return model. > > And we've relied on that before. For example, 64-bit pte's on x86-32 > very much does that whole thing with the "pte_t" union. > > So you can now commence being surprised. > > (Side note: I think sparc or something doesn't support it, and may > return things in memory. I can't really seem to find it in myself to > care) sparc64 actually does support that. So does amd64, and, with explicit flag, i386. No other more or less general purpose architecture does. Not ppc. Not mips. Not arm. I think that some of those are worth caring about...