Hi, I have a problem of new file size changing to a multiple of 512 after reset. The problem appeared after I upgraded YAFFS about a month ago and seems to be similar to that described by Tinger Yin not long ago: http://www.aleph1.co.uk/lurker/message/20080801.071438.04e18aa4.en.html The following piece of code in yaffs_WriteDataToFile() seems to be the cause: nBytesRead = in->variant.fileVariant.fileSize - ((chunk - 1) * dev->nDataBytesPerChunk); if (nBytesRead > dev->nDataBytesPerChunk) { nBytesRead = dev->nDataBytesPerChunk; } nToWriteBack = (nBytesRead > (start + n)) ? nBytesRead : (start + n); When I write a file of 1000 bytes into a new file nBytesRead evaluates to a negative number since the .fileSize is zero. But when it comes to comparison nBytesRead > (start + n) bad thing happens because start type changed from int to __u32 in revision 1.55. Unsigned start causes the whole comparison to be evaluated as unsigned and nToWriteBack gets negative nBytesRead instead of (start + n). Please, approve the fix: Index: SW_Src/Target/PPCApp/HLD/YAFFS2/yaffs_guts.c =================================================================== --- SW_Src/Target/PPCApp/HLD/YAFFS2/yaffs_guts.c (revision 1918) +++ SW_Src/Target/PPCApp/HLD/YAFFS2/yaffs_guts.c (revision 1919) @@ -4831,7 +4831,7 @@ nToWriteBack = (nBytesRead > - (start + n)) ? nBytesRead : (start + n); + ((int)start + n)) ? nBytesRead : (start + n); } else { nToCopy = dev->nDataBytesPerChunk - start; Regards Evgeny Habinsky Software Engineer ------------------------------------------------------------------------ -------- Surf Communication Solutions Tavor Building POB 343, Yokneam 20692, Israel Tel: 972 73 714 0758 Mobile: 972 54 309 8624 Fax: 972 4 959 4055 Email: evgenyh@surf-com.com Web: www.surf-com.com