On Mon, Jun 26, 2006 at 02:36:35PM +0200, Tomas Hruby wrote: > > > More than ~32,000 files in one directory: XFS or reiser > > > > Ext3 can easily have more than 32000 *files* in a directory. However, > > it can only have 32000 *subdirectories* in a directory. This limit is > > from struct ext3_inode->i_links_count, which is an __le16: each > > subdirectory has an entry ".." that links back to its parent increasing > > the parents i_links_count. > > I was always wondering why it increases link_count of the parent directory when > creating a subdirectory. It is clear that .. points to the parent, but the > subdirectory cannot exist without its parent and you cannot delete the parent if > it is not empty. Correct me if I am wrong. It is an elegant way: an inode can only be deleted when the link count is zero. The fastest way to figure that out for directories would be to let subdirs increase the parent link count: you just have look up the link count in the parent instead of going through all directory entries searching for possible subdirectories. Erik -- +-- Erik Mouw -- www.harddisk-recovery.com -- +31 70 370 12 90 -- | Lab address: Delftechpark 26, 2628 XH, Delft, The Netherlands - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html