https://bugzilla.kernel.org/show_bug.cgi?id=16165 Summary: Wrong data returned on read after write if file size was changed with ftruncate before Product: File System Version: 2.5 Kernel Version: at least up to 2.6.34 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: ext4 AssignedTo: fs_ext4@xxxxxxxxxxxxxxxxxxxx ReportedBy: Alexander.Eichner@xxxxxxx Regression: No Created an attachment (id=26701) --> (https://bugzilla.kernel.org/attachment.cgi?id=26701) Testcase showing the corruption Hi, we use the direct async I/O API for file I/O in VirtualBox since 3.2 and got some reports about corrupted guest filesystems. It turned out that only users are affected which disk images are stored on a ext4 filesystem. I could create a testcase which reproduces the error. Further investigation showed that the data corruption happens if ftruncate is used, data is written to the so far unallocated offset and immediately read back. The buffer holding the read data contains only \0 afterwards. The data is there if the file is closed and another program is used to view the file content (less for example). Everything works if ftruncate is not used. The same testcase with ftruncate works on ext3 here. A simple testcase is attached. Compile with: gcc -D_GNU_SOURCE -o aio_corrupt aio_corrupt.c -laio Usage: aio_corrupt <path/to/the/file> Expected output: Success! Output on ext3: Success! Output on ext4: Corrupted buffer! Kind regards, Alexander Eichner -- Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html