On Mon, Jun 26, 2006 at 02:59:00PM +0200, Erik Mouw wrote: > 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. I don't get the point here. If there are not only subdirectories but other entries as well, you can't remove the directory anyway ... Tomas - 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