[TUHS] moving directories in svr2
Dan Cross
crossd at gmail.com
Fri Dec 31 08:31:09 AEST 2021
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.
> Sure, you could scan the pwd of all the processes running on the
> system and do edit all of the strings, but once you go SMP, the
> potential locking pitfalls would be numerous.
I don't see the need for that. What am I missing?
- Dan C.
More information about the TUHS
mailing list