Re: [PATCH] cramfs: generate unique inode number for better inodecache usage
From: stefani
Date: Wed Dec 15 2010 - 11:31:28 EST
Zitat von Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>:
On Wed, Dec 15, 2010 at 12:15 AM, Pekka Enberg <penberg@xxxxxxxxxx> wrote:
I think Linus is after something like this:
That works for me, but I hate the double "switch()" statement checking
the same thing.
Why is the camino() function not just doing something like
static unsigned int cramino(struct cramfs_inode *ino, unsigned int
dirent_offset)
{
unsigned int data_offset = ino->offset;
return data_offset ? data_offset << 2 : dirent_offset+1;
}
and we can get rid of all the cruddy CRAMINO_UNIQ() and testing of the
mode entirely for that path.
That, together with Pekka's approach seems nice, simple and clean.
Linus
Pekka's approach is not problem. But the "cruddy" CRAMINO_UNIQ() is
exact what is needed. In your orginal design of cramfs there is no way
to give entries with no data an unique inode number.
So for not to waste the inode cache and do useless lookups it it
necessary to distinguish between entries with data and entries with no
data. The later one need a special handling to create a unique inode
number depending on the index of the directory entry inside the cramfs
image.
I try my best to make best out of of the old cramfs design and fix the
issues of this filesystem.
- Stefani
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/