man ext4 mentions a mount option called
Commit block can be written to disk without waiting for descriptor blocks. If enabled older kernels cannot mount the device. This will enable 'journal_checksum' internally.
Caveat: the document is incomplete. 1) The option is also no longer allowed in combination with the default option
data=ordered. 2) As of 2012, the option was considered "off the reservation a bit; that's really not tested, and Jan had serious reservations about its safety". I do not know if the option is any more mature in current kernel versions.
Overall this limits its usefulness somewhat. So I don't have a specific practical use for this question. Perhaps someone else is interested in it though.
Q1. What sort of message would appear in the kernel log, if an old kernel is unable to support mounting a filesystem, and the failure reason is that the filesystem had previously been mounted with
journal_async_commit? Would it be possible to identify this specific problem?
Q2. I assume that old kernels will still be able to mount the filesystem if the journal is cleaned/empty, for example if you run a new enough version of
fsck.ext4 first. (
fsck.ext4 is documented as replaying the journal). If I run the current versions of
debuge2fs on an unmounted filesystem, will they show a specific incompatible feature flag, that would tell me exactly whether a too-old kernel can or cannot mount it?
Q3. Is it possible to enable
mkfs.ext4)? If so, what will
tune2fs -l show when it is enabled?
I think the current answer to Q3 is that
tune2fs can set default mount options.
journal_async_commit is not documented as an option that can be set with
tune2fs -o. Therefore you would have to resort to
tune2fs -E mount_opts=journal_async_commit. This feature is not "very polished"; it seems that if you want to set more than one option in
mount_opts= you must use debuge2fs instead.