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

From: Linus Torvalds
Date: Mon Mar 03 2014 - 16:52:23 EST


On Mon, Mar 3, 2014 at 1:26 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> On Mon, Mar 03, 2014 at 04:03:59PM -0500, George Spelvin wrote:
>>
>> (If you want to use bits, why not use the two lsbits of the file pointer
>> for the purpose? That would save a lot of space.)
>
> Most of the cases have it kept separately in registers, actually - there's
> a reason why fdget() and friends are inlined.

Yes. And bit test and set ops on registers are actually cheaper than
playing around with bytes.

That said, the "fget_light()" interface sucks - exactly because it
doesn't do the "return structure in two registers" thing. We should
get rid of it - there's just one remaining user in networking code,
and it should be rewritten in terms of fdget().

That's a separate issue, though.

Oh, and George, your email setup is broken. Gmail thinks your emails
are spam. I'm not sure why (the usual spf problems do not apply), but
it's possibly because your name and email looks made up.

Linus
--
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/