The attached patch restores the behaviour of the 1.2.x client: writes
appending to a file do not trigger a 0-length read which at best updates the
current status. If another cache manager wrote to the same file in the
meantime, the file status is updated only after the StoreData RPC (and for
the changes the last one wins).
if ((aflags & 4) && (hiszero(avc->m.DataVersion)))
doAdjustSize = 1;
if ((AFS_CHUNKTOBASE(chunk) >= avc->m.Length) ||
- ((aflags & 4) && (abyte == Position) && (tlen >= size))))
+ ((aflags & 4) && (abyte == Position) && (tlen >= size)))
overWriteWholeChunk = 1;
if (doAdjustSize || overWriteWholeChunk) {
#if defined(AFS_AIX32_ENV) || defined(AFS_SGI_ENV)