> On Sat, Dec 11, 2010 at 12:50:20PM +0000, Paul Brook wrote: > > > It's guest visible state, so it must not change due to migrations. For > > > the current implementation all values for it work anyway - if it's > > > smaller than the block size we'll zero out the remainder of the block. > > > > That sounds wrong. Surely we should leave partial blocks untouched. > > While zeroing them is not required for qemu, the general semantics of > the XFS ioctl require it. It punches a hole, which means it's makes the > new area equivalent to a hole create by truncating a file to a larger > size and then only writing at the larger offset. The semantics for a > hole in all Unix filesystems is that we read back zeroes from them. > If we write into a sparse file at a not block aligned offset the > zeroing of the partial block also happens.
Ah, so it was just inconsistent use of the term "block". When the erase region includes part of a block, we zero that part of the block and leave the rest of the block untouched. Paul