Re: A bug in ext4 with big directories (was: NVFS XFS metadata)

From: Jan Kara
Date: Wed Sep 23 2020 - 05:45:02 EST


Hi!

On Wed 23-09-20 05:20:55, Mikulas Patocka wrote:
> There seems to be a bug in ext4 - when I create very large directory, ext4
> fails with -ENOSPC despite the fact that there is plenty of free space and
> free inodes on the filesystem.
>
> How to reproduce:
> download the program dir-test:
> http://people.redhat.com/~mpatocka/benchmarks/dir-test.c
>
> # modprobe brd rd_size=67108864
> # mkfs.ext4 /dev/ram0
> # mount -t ext4 /dev/ram0 /mnt/test
> # dir-test /mnt/test/ 8000000 8000000
> deleting: 7999000
> 2540000
> file 2515327 can't be created: No space left on device
> # df /mnt/test
> /dev/ram0 65531436 633752 61525860 2% /mnt/test
> # df -i /mnt/test
> /dev/ram0 4194304 1881547 2312757 45% /mnt/test

Yeah, you likely run out of space in ext4 directory h-tree. You can enable
higher depth h-trees with large_dir feature (mkfs.ext4 -O large_dir). Does
that help?

Honza

--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR