summaryrefslogtreecommitdiff
path: root/refs
diff options
context:
space:
mode:
authorMichael Haggerty <mhagger@alum.mit.edu>2016-09-04 16:08:31 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-09-09 22:28:13 (GMT)
commitf7b0a987b564b356ffcf7eb62fa33b200cbd5b87 (patch)
tree4b68ec3e7a9c580edea0b23ebe1c34d8e91ce5f0 /refs
parent0a95ac5f630c01ba8a50b72cae9e067cb256cb0f (diff)
downloadgit-f7b0a987b564b356ffcf7eb62fa33b200cbd5b87.zip
git-f7b0a987b564b356ffcf7eb62fa33b200cbd5b87.tar.gz
git-f7b0a987b564b356ffcf7eb62fa33b200cbd5b87.tar.bz2
lock_raw_ref(): add a files_ref_store argument
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs')
-rw-r--r--refs/files-backend.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c
index af711f6..4f4ab0f 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -1523,7 +1523,8 @@ static void unlock_ref(struct ref_lock *lock)
* avoided, namely if we were successfully able to read the ref
* - Generate informative error messages in the case of failure
*/
-static int lock_raw_ref(const char *refname, int mustexist,
+static int lock_raw_ref(struct files_ref_store *refs,
+ const char *refname, int mustexist,
const struct string_list *extras,
const struct string_list *skip,
struct ref_lock **lock_p,
@@ -1531,15 +1532,14 @@ static int lock_raw_ref(const char *refname, int mustexist,
unsigned int *type,
struct strbuf *err)
{
- struct ref_store *ref_store = get_ref_store(NULL);
- struct files_ref_store *refs =
- files_downcast(ref_store, 0, "lock_raw_ref");
struct ref_lock *lock;
struct strbuf ref_file = STRBUF_INIT;
int attempts_remaining = 3;
int ret = TRANSACTION_GENERIC_ERROR;
assert(err);
+ assert_main_repository(&refs->base, "lock_raw_ref");
+
*type = 0;
/* First lock the file so it can't change out from under us. */
@@ -1623,7 +1623,7 @@ retry:
* fear that its value will change.
*/
- if (files_read_raw_ref(ref_store, refname,
+ if (files_read_raw_ref(&refs->base, refname,
lock->old_oid.hash, referent, type)) {
if (errno == ENOENT) {
if (mustexist) {
@@ -3486,6 +3486,8 @@ static int lock_ref_for_update(struct ref_update *update,
struct string_list *affected_refnames,
struct strbuf *err)
{
+ struct files_ref_store *refs =
+ get_files_ref_store(NULL, "lock_ref_for_update");
struct strbuf referent = STRBUF_INIT;
int mustexist = (update->flags & REF_HAVE_OLD) &&
!is_null_sha1(update->old_sha1);
@@ -3502,7 +3504,7 @@ static int lock_ref_for_update(struct ref_update *update,
return ret;
}
- ret = lock_raw_ref(update->refname, mustexist,
+ ret = lock_raw_ref(refs, update->refname, mustexist,
affected_refnames, NULL,
&update->lock, &referent,
&update->type, err);