summaryrefslogtreecommitdiff
path: root/refs/files-backend.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-10-26 03:29:23 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-10-26 03:29:23 (GMT)
commit4e40fb302eacf4949f6b7d010fd5c11f1f652b7f (patch)
treec63abb71b4cf714fb42bc56e93b9f0a3665baf2b /refs/files-backend.c
parentba78f398be65e941b93276680f68a81075716472 (diff)
parentda5267f1b66dfe83a92698e49fa10dee5f74224f (diff)
downloadgit-4e40fb302eacf4949f6b7d010fd5c11f1f652b7f.zip
git-4e40fb302eacf4949f6b7d010fd5c11f1f652b7f.tar.gz
git-4e40fb302eacf4949f6b7d010fd5c11f1f652b7f.tar.bz2
Merge branch 'mh/ref-locking-fix'
Transactions to update multiple references that involves a deletion was quite broken in an error codepath and did not abort everything correctly. * mh/ref-locking-fix: files_transaction_prepare(): fix handling of ref lock failure t1404: add a bunch of tests of D/F conflicts
Diffstat (limited to 'refs/files-backend.c')
-rw-r--r--refs/files-backend.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 014dabb..8cc1e07 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -2570,7 +2570,7 @@ static int files_transaction_prepare(struct ref_store *ref_store,
ret = lock_ref_for_update(refs, update, transaction,
head_ref, &affected_refnames, err);
if (ret)
- break;
+ goto cleanup;
if (update->flags & REF_DELETING &&
!(update->flags & REF_LOG_ONLY) &&