On Dec 18, 2008, at 7:43 PM, erik quanstrom wrote:
Agreed. Now, here's a bit that I still don't quite
understand: Plan9 does have DMAPPEND on
a per-Qid basis. Why was it decided not to
have it on a per-Fid basis (which would match
POSIX semantics 100%)?
The way I understand -- DMAPPEND is just a hint
to the server to *alway* ignore the offset in
incoming writes. It seems that ignoring offsets
in writes for the Fids that asked for it wouldn't be
much more difficult, would it?
DMAPPEND, for servers that implement it, is not
a hint to the server, it's a write to the end of the file,
whatever offset that might be.
Well, modulo clumsy wording on my part your explanation
seems to be 100% the same as mine.
since the end is computed on the file server, multiple
concurrent writers don't cause a problem. since the
fs is in a position to serialize appends to the same
file.
And where does it contradict the idea to have the
equivalent of DMAPPEND set per-FID? Or more
precisely per open-FID.
Look, one way or the other the server has a *choice*
of ignoring the offset in write(5) messages and always
appending the data. It can do it effectively and safely
(unlike the client). All I'm asking is why the obvious
benefits of asking the server to ignore the offsets
ONLY for a particular open fid were not considered
to be a good thing.
Your reply doesn't answer that question.
Thanks,
Roman.