Linus, > I also worry that this "raw compressed data" thing isn't the only > thing people will want to do. I could easily see some kind of > "end-to-end CRC read/write" where the user passes in not just the > data, but also checksums for it to validate it (maybe because you're > doing a file copy and had the original checksums, but also maybe > because user space simply has a known good copy and doesn't want > errors re-introduced due to memory corruption). We already support passing CRCs down to be validated by the hardware for both NVMe and SCSI. This currently only works from the block layer down. When enabled, the checksums are generated by the block layer for writes and the data is validated against the checksums sent by the storage on reads. Over the years various attempts at adding support for passing the checksum buffers in from userland have failed for exactly the reasons outlined in this thread (Joel, Darrick, Bob). Would love to have a generic way of passing this kind of information... -- Martin K. Petersen Oracle Linux Engineering