RHEL 8.4 has an incorrect optimization in the write_begin codepath, such that we could corrupt data if writing to an offset beyond the EOF, but that is within a page that already has data.
There is a fix proposed here that should go into stable kernels v5.10..v5.12. We'll want the same fix for RHEL8.4.z and RHEL8.5.
Plan for this BZ verification
I should mention too that there is a new xfstest for this problem:
I recommend using that to verify this bug.