On Mon, Mar 17, 2014 at 01:28:04AM +0000, Al Viro wrote:
> but that is unsafe - consider a situation when you are writing 20Kb from e.g.
> 0.5Kb offset from the beginning of last (4Kb) block. You have 6 blocks
> affected, right? One old, five new. And you want the last half-kilobyte
s/the last/all but the first/, sorry. Basically, we want to get from
OOOOOOOO (8 sectors of old data)
ONNNNNNN|NNNNNNNN|NNNNNNNN|NNNNNNNN|NNNNNNNN|NZZZZZZZ (1 sector of old data,
40 sectors of new data, 7 sectors of zeroes). We want the last 7 sectors
zeroed out, but we do *not* want that to happen to the one sector of old data.
OTOH, if the file had been 4K shorter (and all blocks had been new) we would
ZNNNNNNN|NNNNNNNN|NNNNNNNN|NNNNNNNN|NNNNNNNN|NZZZZZZZ. IOW, it's not just
the last block we want to know about. There's simply not enough bandwidth
in that interface to pass the information we would need for such mixed