lockfile: report when rollback fails

We do not report to the caller when rolling back a lockfile fails, which
will be needed by the reftable compaction logic in a subsequent commit.
It also cannot really report on all errors because the function calls
`delete_tempfile()`, which doesn't return an error either.

Refactor the code so that both `delete_tempfile()` and
`rollback_lock_file()` return an error code.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2024-03-07 14:10:31 +01:00
committed by Junio C Hamano
parent b387623c12
commit 4ae540d421
3 changed files with 17 additions and 12 deletions

View File

@@ -321,11 +321,11 @@ static inline int commit_lock_file_to(struct lock_file *lk, const char *path)
* Roll back `lk`: close the file descriptor and/or file pointer and
* remove the lockfile. It is a NOOP to call `rollback_lock_file()`
* for a `lock_file` object that has already been committed or rolled
* back.
* back. No error will be returned in this case.
*/
static inline void rollback_lock_file(struct lock_file *lk)
static inline int rollback_lock_file(struct lock_file *lk)
{
delete_tempfile(&lk->tempfile);
return delete_tempfile(&lk->tempfile);
}
#endif /* LOCKFILE_H */