I'm just curious --- what is your use case for wanting to use Direct I/O in mke2fs? In general, using buffered I/O is much faster, and the historically, Direct I/O option was primarily used as a workaround for kernels (long ago) that were buggy with respect to write throttling, and userspace programs which issued a large number of number of buffered writes, especially in a constrained memory cgroup, could potentially get OOM-killed.
What the kernel *should* do is to throttled the buffered writes, by cause the buffered write(2) to block until there is enough free memory in the cgroup so the user space program doesn't get OOM-killed. I don't believe modern kernels has had write throttling bugs in quite a while, however. One of the reasons I didn't bother backporting the bug to Debian Stable was because I had assumed the -D option isn't commonly used. That's why I'm curious why you were using the -D option and ran across this bug. Thanks, - Ted