[TUHS] moving directories in svr2

Rob Pike robpike at gmail.com
Fri Dec 31 13:23:15 AEST 2021


In broad strokes, that's exactly what we did in Plan 9, with great results,
as was said here a while back. The paper ended with a plea to do the same
to Unix, which I think is quite doable.

https://9p.io/sys/doc/lexnames.html

-rob


On Fri, Dec 31, 2021 at 2:09 PM Theodore Ts'o <tytso at mit.edu> wrote:

> On Thu, Dec 30, 2021 at 05:31:09PM -0500, Dan Cross wrote:
> > On Thu, Dec 30, 2021 at 11:41 AM Theodore Ts'o <tytso at mit.edu> wrote:
> > > On Wed, Dec 29, 2021 at 10:45:12PM -0500, Noel Chiappa wrote:
> > > >     > From: Bakul Shah
> > > >
> > > >     > My guess is *not* storing a path instead of a ptr to the inode
> was done
> > > >     > to save on memory.
> > > >
> > > > More probably speed; those old disks were not fast, and on a PDP-11,
> disk
> > > > caches were so small that converting the path to the current
> directory to its
> > > > in memory inode could take a bunch of disk reads.
> > >
> > > The other problem with storing the path as a string is that if
> > > higher-level directories get renamed, the path would become
> > > invalidated.  If you store the cwd as "/foo/bar/baz/quux", and someone
> > > renames "/foo/bar" to "/foo/sadness" the cwd-stored-as-a-string would
> > > become invalidated.
> >
> > Why? Presumably as you traversed the filesystem, you'd cache, (path
> > component, inode) pairs and keep a ref on the inode.  For any given
> > file, including $CWD, you'd know it's pathname from the root as you
> > accessed it, but if it got renamed, it wouldn't matter because you'd
> > have cached a reference to the inode.
>
> I was responding to Bakul's suggestion that the original Unix
> could/should have stored the cwd as a string, instead of a pointer to
> a directory inode.  If you stored the cwd as a string, then you could
> interpret .. by chopping off the last file name component of the
> string, and so now you could have hard links to directories and the
> file system tree could then be a file system DAG.
>
> I don't think Bakul's proposal would have worked --- although I
> suppose if you disallowed directory renames, I guess it could.  Noel's
> objection above was a performance one, in that if you had to parse the
> path every single time, you'd be much more dependent on the namei
> cache --- and that PDP-11 didn't have the memory to support a
> sufficiently large cache.
>
>                                                         - Ted
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20211231/be35149f/attachment.htm>


More information about the TUHS mailing list