Messages in this thread | | | From | Andreas Dilger <> | Subject | Re: [PATCH][CFT] (updated) ext2 directories in pagecache | Date | Thu, 10 May 2001 01:21:50 -0600 (MDT) |
| |
I previously wrote: > I was looking at the new patch, and I saw something that puzzles me. > Why do you set the EXT2_INDEX_FL on a new (empty) directory, rather > than only setting it when the dx_root index is created? > > Setting the flag earlier than that makes it mostly useless, since it > will be set on basically every directory. Not setting it would also > make your is_dx() check simply a check for the EXT2_INDEX_FL bit (no > need to also check size). > > Also no need to set EXT2_COMPAT_DIR_INDEX until such a time that we have > a (real) directory with an index, to avoid gratuitous incompatibility > with e2fsck.
I have changed the code to do the following: - If the COMPAT_DIR_INDEX flag is set at mount/remount time, set the INDEX mount option (the same as "mount -o index"). This removes the need to specify the "-o index" option each time for filesystems which already have indexed directories. - New directories NEVER have the INDEX flag set on them. - If the INDEX mount option is set, then when directories grow past 1 block (and have the index added) they will get the directory INDEX flag set and turn on the superblock COMPAT_DIR_INDEX flag (if off).
This means that you can have common code for indexed and non-indexed ext2 filesystems, and the admin either needs to explicitly set COMPAT_DIR_INDEX in the superblock or mount with "-o index" (and create a directory > 1 block).
I have also added some tricks to ext2_inc_count() and ext2_dec_count() so that indexed directories are not subject to the EXT2_LINK_MAX. I've done the same as reiserfs, and set i_nlink = 1 if we overflow EXT2_LINK_MAX (which has been increased to 65500 for indexed directories). Apparently i_nlink = 1 is the right think to do w.r.t. find and other user tools.
Patches need some light testing before being posted.
Cheers, Andreas -- Andreas Dilger \ "If a man ate a pound of pasta and a pound of antipasto, \ would they cancel out, leaving him still hungry?" http://www-mddsp.enel.ucalgary.ca/People/adilger/ -- Dogbert - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |