Re: ext3/ext4 directories don't shrink after deleting lots of files

From: Timo Sirainen
Date: Thu May 14 2009 - 20:45:52 EST


On May 14, 2009, at 8:32 PM, Josef Bacik wrote:

On Thu, May 14, 2009 at 6:02 PM, Timo Sirainen <tss@xxxxxx> wrote:
I've noticed that if you create e.g. 100k files to a directory and then
delete the files, the directory entry still seems to take a couple of
megabytes. Later whenever accessing the (almost empty) directory it can
take a few seconds to load it into cache.

Is there a way to shrink the directory somehow without having to rmdir()
it? Would be nice if kernel did it automatically, but I could live with
a manual userspace syscall/tool as well.


fsck -D <device>, when its unmounted of course.

I was rather thinking something that I could run while the system was fully operational. Otherwise just moving the files to a temp directory + rmdir() + rename() would have been fine too.

I just tested that xfs, jfs and reiserfs all shrink the directories immediately. Is it more difficult to implement for ext* or has no one else found this to be a problem?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/