Short version: no, using a modern SATA disk and a journaled filesystem it is not possible to corrupt acknowoledged (ie: synced) writes even when disk cache is enabled. On the other side, unsynced (buffered) writes can be lost/corrupted in case of powerloss. However, the article you linked is about a specific firmware issue and does not talk about generic behavior when using disk caching:
While performing extended disk test exercises, a latent firmware issue
was discovered.
Long answer: two kind of writes can be issued:
- sync writes, which guarantee persistence (and ordering) by leveraging ATA FLUSHes or FUAs;
- unsynced (buffered) writes, which can be cached, aggregated and reordered by the disk DRAM cache.
When dealing with HDDs and consumer SSDs, sync writes are very slow: the process of flushing any single write means the per-IO latency is payed at each single write. So, sync writes are generally reserved for the most important IOs: journal commit, databases, email delivery, etc. All other less-important writes (ie: a user file copy) are issued as cached/buffered writes and data be lost if powerloss happens at the right moment (up until 30-60s after the original write).
Note that ancient PATA and SATA drives lied to the OS, pretending to honor syncs while actually discarding the required flushing behavior. This led to the suggestion of totally disabling the disk DRAM cache (or setting it in read-only mode), so that any written data was really stored on the (durable) disk platters. A disk with its cache disabled effectively treat each write as sync, providing maximum safety guarantees at a great performance cost.
Please note that this does not means that buffered writes can not be lost: if a crash happen before the OS flushed its buffers, all unsynced data will be lost. For this reason, and considering that modern (post-2008) disks honor ATA FLUSHes or (post-2015) FUAs, the current common advice is to let the disk cache enabled and to rely on the OS to flush important writes.
SSDs and HW RAID cards with powerloss protection escape this performance/safety tradeoff by having on-board circuitry to safely cache any writes (even sync ones). Anyway, when using an HW RAID card, how the disk cache will be managed is implementation dependent (ie: PERC disable it for SAS disks, but not for SATA ones).
I could not understand the exact meaning of this statement.
The article stated that an IBM driver had a defect that caused the problem. The IBM software invalidated data in the cache, which effectively trashed the data because the operating system had already reported to the application that it had been saved. The data was not saved to the disk. IBM corrected the defect and released an update.