FAT driver somehow limits multiple access to a file
As the klog task stores the kernel log output to a file /log/klog, a strange behaviour can be observed if the /log/klog is stored on a FAT filesystem.
Although the klog uses both fflush() and fsync() to flush all possible buffers, the size of the /log/klog file never actually grows beyond 3072 bytes and it is not possible to read more data from it than 3072 bytes via other tasks (such as "cat" command or edit).
It is questionable whether this is really a bug or somehow an expected behaviour given the fact FAT was probably not designed for parallel access from multiple tasks, but there should be probably some way except using fclose()/close() to force consistent view of the file.
The root cause of this issue is probably not in libc and VFS, since replacing FAT with tmpfs solves it.