On 10/30/20 9:51 AM, Naohiro Aota wrote:
If more than one IO is issued for one file extent, these IO can be written to separate regions on a device. Since we cannot map one file extent to such a separate area, we need to follow the "one IO == one ordered extent" rule. The Normal buffered, uncompressed, not pre-allocated write path (used by cow_file_range()) sometimes does not follow this rule. It can write a part of an ordered extent when specified a region to write e.g., when its called from fdatasync(). Introduces a dedicated (uncompressed buffered) data write path for ZONED mode. This write path will CoW the region and write it at once. Signed-off-by: Naohiro Aota <naohiro.aota@xxxxxxx>
This can be modified to work in the way I described in the 'split ordered extent' patch, just flesh this out to do all the work together and that way you bypass all the ugly splitting stuff. Thanks,
Josef