read_cache: roll back lock in `update_index_if_able()`
commitb74c90fb419b002c664b0236f2941c34786b18b9
authorMartin Ågren <martin.agren@gmail.com>
Fri, 6 Oct 2017 20:12:14 +0000 (6 22:12 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 7 Oct 2017 01:20:56 +0000 (7 10:20 +0900)
treed26cb73d0fa8435c62884de4a73fde36e4e8aee1
parentdf60cf5789782191b092169f86255aa44525b7d1
read_cache: roll back lock in `update_index_if_able()`

`update_index_if_able()` used to always commit the lock or roll it back.
Commit 03b866477 (read-cache: new API write_locked_index instead of
write_index/write_cache, 2014-06-13) stopped rolling it back in case a
write was not even attempted. This change in behavior is not motivated
in the commit message and appears to be accidental: the `else`-path was
removed, although that changed the behavior in case the `if` shortcuts.

Reintroduce the rollback and document this behavior. While at it, move
the documentation on this function from the function definition to the
function declaration in cache.h.

If `write_locked_index(..., COMMIT_LOCK)` fails, it will roll back the
lock for us (see the previous commit).

Noticed-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
read-cache.c