Fix checking of fwrite return values
Merge remote-tracking branch 'origin/fastpath'

* origin/fastpath:
  Fix checking of fwrite return values

Some didn't look quite right so fixed while merging: the return value of
fwrite is in terms of number of objects written, not number of bytes
written and some calls still mixed those up.