Re: [PATCH RESEND x3 v9 1/9] iov_iter: add copy_struct_from_iter()
From: Matthew Wilcox <willy@infradead.org>
Date: 2021-06-25 03:38:30
Also in:
linux-api, linux-fsdevel
From: Matthew Wilcox <willy@infradead.org>
Date: 2021-06-25 03:38:30
Also in:
linux-api, linux-fsdevel
On Thu, Jun 24, 2021 at 06:41:52PM -0400, Martin K. Petersen wrote:
Linus,quoted
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...
Does it make any kind of sense to talk about doing this for buffered I/O, given that we can't generate them for (eg) mmaped files? Or does this only make sense to pass in for O_DIRECT accesses?