From Alex Tomas We started using ext3_dx_readdir() for all dir_index filesystems, because we want to return entries in hash order always, so that readdir with a partial read + new entry added before next readdir won't be crazy. So we now need to free the structure at filp->pricate_data even against non-indexed directories. fs/ext3/dir.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN fs/ext3/dir.c~htree-leak-fix fs/ext3/dir.c --- 25/fs/ext3/dir.c~htree-leak-fix 2003-05-12 21:23:29.000000000 -0700 +++ 25-akpm/fs/ext3/dir.c 2003-05-12 21:23:29.000000000 -0700 @@ -509,7 +509,7 @@ finished: static int ext3_release_dir (struct inode * inode, struct file * filp) { - if (is_dx(inode) && filp->private_data) + if (filp->private_data) ext3_htree_free_dir_info(filp->private_data); return 0; _