fat: fixed up a completely incorrect size calculation in FatFile::writeBlock that broke compiling files with GCC.

It is now possible to compile a file, reboot, and run that file again.
vfs: acquire file mutex in File::writeCallback