entry: check for fstat() errors after checkout
commit35e6e212fdea3a22abe0dc5867b974b30b787be0
authorMatheus Tavares <matheus.bernardino@usp.br>
Thu, 9 Jul 2020 02:10:39 +0000 (8 23:10 -0300)
committerJunio C Hamano <gitster@pobox.com>
Thu, 9 Jul 2020 16:45:06 +0000 (9 09:45 -0700)
tree0d5f2e0dc4fd31bae42f9d923eb17bc58b6f8b07
parentaf6b65d45ef179ed52087e80cb089f6b2349f4ec
entry: check for fstat() errors after checkout

In 11179eb311 ("entry.c: check if file exists after checkout",
2017-10-05) we started checking the result of the lstat() call done
after writing a file, to avoid writing garbage to the corresponding
cache entry. However, the code skips calling lstat() if it's possible
to use fstat() when it still has the file descriptor open. And when
calling fstat() we don't do the same error checking. To fix that, let
the callers of fstat_output() know when fstat() fails. In this case,
write_entry() will try to use lstat() and properly report an error if
that fails as well.

Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
entry.c