Messages in this thread | | | Date | Mon, 11 Jan 1999 15:03:21 -0500 (EST) | From | Alexander Viro <> | Subject | Re: dcache problems with vfat |
| |
On 11 Jan 1999, Magnus Ahltorp wrote:
> > > The dentry for the root of a mounted filesystem is returned by > > > d_alloc_root() and is unhashed. > > > > Umm... Little addition: this function is used to allocate dentries for > > sockets and pipes. IMHO they should have separate superblocks (maybe > > one for each address family). > > Maybe even some generic d_alloc_root that stores a text string > describing the type, like "socket" and "pipe", as to make it possible > to create other roots (and be able to output something in /proc/*/fd/)?
Magnus, do you remember the thread re: exporting get_empty_filp()? What I've meant back then was to have separate lists of struct file's, one per superblock. Get a superblock per address family (and one for pipes) and allocate root for it *once*. Then allocate normal dentries under said root putting names a-la AF_UNIX-12345. BTW, separate lists of struct file's would allow *much* cleaner code around tty's and much simpler scanning phase in AF_UNIX garbage collector. No need to keep reference from socket to file, BTW. (It's a layering violation, plain and simple; especially unpleasant since sometimes we count said refecerence and sometimes we don't. Could you spell file leaks?) I didn't finish this work yet but I'll return to it in a week or so. D'oh. With all that heap of code I'll probably just follow Alan's example and will carry a separate tree (-bird). Part will (I hope) make its way to 2.2, the rest... well, 2.3 <shrug> Al
- 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/
| |