Clipper application running under Linux over cifsfs can miss the last read and corrupt the database.
lseek(fd, 0, SEEK_END) is missing the last write and returning the wrong size (there's a 1 second cache of file size that must be revalidated on the wire in the non-oplocked case).
I'll attach the files to reprodce the bug.
Reported by Claudia Neumann <email@example.com>
Test case can be found here :
(it's in German - just as an fyi).
Fix in cifs-2.6.git tree now.
Will request merge to mainline when test success confirmation is returned
(tests ok for me with 2.6.20 simple fs tests)