In the Linux kernel, the following vulnerability has been resolved: nvdimm: pmem: keep PREFLUSH before data writes pmem_submit_bio() records a REQ_PREFLUSH error, but continues to copy the bio data and can later overwrite the error with a successful REQ_FUA flush. That lets data writes run after a failed preflush and can complete the bio successfully despite the failed ordering barrier. Run the REQ_PREFLUSH flush synchronously before touching the bio data and complete the bio with the flush error if it fails. Keep asynchronous flush chaining for REQ_FUA. At that point, data copy has completed and the parent bio can wait for the chained flush bio.
https://git.kernel.org/stable/c/c644a2f8fef5618fcf453c591177700fd07dd024
https://git.kernel.org/stable/c/770a90c2127220f0fc194ce909ad4f0842e141cb
https://git.kernel.org/stable/c/72561ca1ab96f0f0f32737a6171641e05a318538