9fans archive / 2000 / 03 / 7 / prev next
From: rob pike rob@pla...
Subject: [9fans] Re: 9p question
Date: Thu, 9 Mar 2000 08:50:41 -0500
> The real reason for the "lengthy" conversation is the Tclone/Twalk
> part. That is part of the price that is paid to remove the '/' as a
> directory separator
No. The real reason is that after each walk the client must check whether
the point-so-far is in the mount table. That's why it's done a path
element at a time, and why it's so slow. Other designs have been
proposed that would allow a walk message to contain multiple
elements (requiring the server to parse and understand '/'), but
it's such a pain to change the protocol.
Seeking on a directory is forbidden because it's hard enough to
implement reading a union directory without seek. The internal
structure that must be maintained in the kernel was deemed too
hard to maintain other than by sequential access, so we made
seeking on a directory illegal. It didn't seem worth the implementation
overhad. I still feel that way.
>There are a lot of strange things like:
> delim $$ define lbr ' roman "{" ' define rbr ' roman "}" '
>or
> $CH sub c$
>which should be "CH <sub>c</sub>", I guess.
Would you have noticed this if it didn't contain your name?
-rob