From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755641AbaCCXmL (ORCPT ); Mon, 3 Mar 2014 18:42:11 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:36734 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755005AbaCCXmJ (ORCPT ); Mon, 3 Mar 2014 18:42:09 -0500 Date: Mon, 3 Mar 2014 23:42:07 +0000 From: Al Viro To: Linus Torvalds Cc: George Spelvin , linux-fsdevel , Linux Kernel Mailing List Subject: Re: Update of file offset on write() etc. is non-atomic with I/O 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 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@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...