Have you ever heard of /var/spool/mail, this multi-gigabyte directory[1] which
tends to get rather busy on shell machines? Often made up of tens of thousands
small to medium size files.
Or, for people who use qpopper, another temporary directory whose disk IO
can completely flood an U2W SCSI bus (and hence make them move to cucipop,
but the point is, there are cases where there are massive numbers of people
writing both small and large files to common directories).
Similarly, just about every directory which traditionally is mode 1777 or
group-write with setgid writers.
And now for a question - anyone who reads the code below - it works very
well in 2.0.x (except for the problem that usernames are not evenly distributed
based on first letters, and a real hashing algorithm should be used); when I
move to 2.2.x is it going to freak out the dcache?
David.
[1] Or collection of directories.[2]
[2] fs/namei.c: getname():
#ifdef MAIL_HACK
/* WARNING: MAIL_HACK uses i386 endianness ONLY at present */
if ((*(tmp++) = c) == '/' && (unsigned long)tmp - page == 16 &&
!memcmp((char *)page, "/var/spool/mail/", 16)) {
if((c = get_user(filename++)) >= 'a' && c <= 'z') {
*(char *)(page + 11) = '.';
*(unsigned int *)(page + 12) =
'm' | ('/'<<8) | ('/'<<24) | (c<<16);
}
} else
c = get_user(filename++);
#else
*(tmp++) = c;
c = get_user(filename++);
#endif
-
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/