On 11/13/18 11:08 AM, Brian Foster wrote: > For example, a buffered write occurs across the file offset (in FSB > units) range of [29, 57]. A shared extent exists at blocks [29, 35] > and COW reservation already exists at blocks [32, 34]. After > accommodating a COW extent size hint of 32 blocks and the existing > reservation at offset 32, xfs_reflink_reserve_cow() allocates 32 > blocks of reservation at offset 0 and returns with COW reservation > across the range of [0, 34]. The associated data fork extent is > still [29, 35], however, which isn't fully covered by the COW > reservation. > > This leads to a buffered write at file offset 35 over a shared > extent without associated COW reservation. Writeback eventually > kicks in, performs an overwrite of the underlying shared block and > causes the associated data corruption. Can you write this in the form of an xfstests reproducer please? :) -Eric