Re: dcache problems with vfat

Steven N. Hirsch (shirsch@adelphia.net)
Thu, 7 Jan 1999 08:00:44 -0500 (EST)


On 6 Jan 1999, Magnus Ahltorp wrote:

> > Oh, crap. The list_empty(&dentry->d_subdirs) test in d_invalidate() should
> > be a test for d_children, not d_subdirs!
>
> Are these lists only documented in code, or are they documented
> somewhere else? It's not very easy to get hold of what all these lists
> do when you see them for the first time. The only way I have learnt
> about this it through reading the code many, many times, but by this
> way, no "spirit" is given from the designer to the programmer.

I couldn't agree more. Richard's effort was commendable, but the tone is
a bit too abstract for me to grasp what's really going on. Some of the
preceeding postings in this thread were actually quite a bit more helpful.

What I'd love to see is a "hand-waving" talk through; first of the older
dcache/vfs then, in contrast, the newer system. Rather than "this is
this, and that is that..", perhaps with the approach of "..process A makes
a file-open call. When it gets into kernel mode, the ratta-ratta list is
traversed for..". Basically, a dynamic flow would be great. Not so much
to spoon-feed the methodology and function, but more to act as a guide
while reading the source. It's almost impossible (for me, at least) to
dive in and start picking it apart without a sense of "it starts here,
then this, then this..., finally that".

Lest anyone think I'm unmotivated, I have sat down and read Vahesh
Vahalia's "UNIX Kernel Internals" from cover-to-cover - twice, followed by
multiple readings of Richard's docs, Remy Card's book AND "Linux Kernel
Internals". It still just isn't clicking for me how Linux 2.1.x differs
from "mainstream" implementations (or even from 2.0.0).

Is anyone else running into a brick-wall on this, or am I just dense?

Steve

-
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/