Hi guys, I know this is a noob question, but I'd really like to understand this aspect of the kernel design.
I'm planning to experiment on the topic, modifying chan.c so that the semantics of create(2) match those of create(5) about existing files. I guess that the number of callers to fix is manageable.
But since I can't see any good reason for the race being there in the first place (except maybe backward compatibility with unix, but that was not a problem for Plan 9 designers), I'm pretty sure I'm missing something obvious.
So, please, do you know why the create syscall does not simply return an error if the file already exists?