Juan Quintela <quint...@redhat.com> writes: > fwrite() returns the number of items written. But when there is one > error, it can return a short write. > > In the particular bug that I was tracking, I did a migration to a > read-only filesystem. And it was able to finish the migration > correctly. fwrite() never returned a negative error code, the 1st > time it returns 0, after that it returns 4096. (migration writes > chunks of about 14000 bytes). And it was able to "complete" the > migration with success (yes, reading the file was a bit more > difficult). On the 1st fwrite() for the read-only filesystem, > it returns an errno of -EPIPE, that is exactly what has failed. > > To add insult to injury, if your amount of memory was big enough (12GB > on my case), it overwrote some important structure, and from them, > malloc failed. This check makes the problem go away. > > Signed-off-by: Juan Quintela <quint...@redhat.com>
Reviewed-by: Markus Armbruster <arm...@redhat.com>