[PATCH 0/5] roll back locks in various code paths
- From
- Martin Ågren <martin.agren@gmail.com>
- Date
- Feb 27, 2018, 21:30 UTC
- Message-ID
- <cover.1519763396.git.martin.agren@gmail.com>
Patches 2-4 are the actual fixes where I teach some functions to always roll back the lock they're holding. Notably, these are all in "libgit".
Patch 1 is a "while at it" to use locks on the stack instead of having them be static. Patch 5 removes code to roll back locks which are already rolled back.
I've based this on maint. There's a conflict on pu, with c7d4394111 (sequencer: avoid using errno clobbered by rollback_lock_file(), 2018-02-11). The conflict resolution would be to take my version for the "could not lock HEAD"-hunk.
Martin
Martin Ågren (5): sequencer: make lockfiles non-static sequencer: always roll back lock in `do_recursive_merge()` merge-recursive: always roll back lock in `merge_recursive_generic()` merge: always roll back lock in `checkout_fast_forward()` sequencer: do not roll back lockfile unnecessarily
merge-recursive.c | 4 +++- merge.c | 12 +++++++++--- sequencer.c | 32 ++++++++++++++------------------ 3 files changed, 26 insertions(+), 22 deletions(-)
-- 2.16.2.246.ga4ee44448f