Filesystem with huge files cannot be mounted read-write without CONFIG_LBDAF
After skipping 2.6.30 and building a new 2.6.31 I suddenly couldn't mount my ext4 drive anymore and got this rather confusing error in dmesg:
EXT4-fs (sda1): Filesystem with huge files cannot be mounted read-write without CONFIG_LBDAF
But... I don't have any huge files on that disk. Not bigger than some DVD iso anyway.After a few days I finally get the time to check the kernel configuration docs, and they say:
CONFIG_LBDAF:Enable block devices or files of size 2TB and larger.This option is required to support the full capacity of large (2TB+) block devices, including RAID, disk, Network Block Device, Logical Volume Manager (LVM) and loopback.This option also enables support for single files larger than 2TB.The ext4 filesystem requires that this feature be enabled in order to support filesystems that have the huge_file feature enabled. Otherwise, it will refuse to mount in the read-write mode any filesystems that use the huge_file feature, which is enabled by default by mke2fs.ext4.The GFS2 filesystem also requires this feature.If unsure, say Y.
Well, alright. mkfs.ext4 has said feature enabled by default. That's what you get for building your own kernels and not reading everything in make oldconfig.
Edit: The feature can be activated at Enable the block layer ---> Support for large (2TB+) block devices and files, thanks to Arix.Edit:: The feature can be removed from an existing filesystem by running the following commands:
tune2fs -O ^huge_file /dev/whatever
This should allow you to mount the drive without CONFIG_LBDAF in the kernel. Thanks Marcus!