Re: Update of file offset on write() etc. is non-atomic with I/O

From: Al Viro
Date: Mon Mar 03 2014 - 18:42:19 EST


On Mon, Mar 03, 2014 at 03:34:43PM -0800, Linus Torvalds wrote:
> On Mon, Mar 3, 2014 at 3:28 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> 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...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/