Re: fsync on large files

Alexander Viro (viro@math.psu.edu)
Thu, 18 Feb 1999 14:43:48 -0500 (EST)


On Thu, 18 Feb 1999, Raul Miller wrote:

> On Thu, 18 Feb 1999, Raul Miller wrote:
> > > > > You might be able to get away with having a list of parents structure
> > > > > on multiply linked directories, which would have to be mirrored in
> > > > > dcache.
>
> Alexander Viro <viro@math.psu.edu> wrote:
> > And on rename() you will rebuild that data. How? Again, direct ancestors
> > may be even not in dcache yet when you do the first lookup.
> > What kind of data structure are you going to use?
>
> The list of immediate parents would have to exist on disk for every
> directory with more than one parent. I suppose I would base that data
> structure on the "indirect block" structure of a regular inode.

OK, so you are doing lookup on foo from /bar/baz. You see that foo is a
directory and it has another parent. You see that this parent is nowhere
near dcache/icache. Worse yet, actually it's the end of *long* chain of
directories and none of them (except the root, that is) is in dcache. To
make it even nastier, suppose that there are fan-ins in that chain (i.e
some of those directories also have multiple parents). Your actions?
Now, assume that another lookup goes through the alternative path in the
same time from the other direction. Your actions wrt locking?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/