Fix refs.c;:repack_without_ref() clean-up path

The function repack_without_ref() passes a lock-file structure
on the stack to hold_lock_file_for_update(), which in turn
registers it to be cleaned up via atexit().  This is a big
no-no.

This is the same bug James Bottomley fixed with commit
31f584c242e7af28018ff920b6c8d1952beadbd4.

Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/refs.c b/refs.c
index 221eb38..aa4c4e0 100644
--- a/refs.c
+++ b/refs.c
@@ -621,12 +621,13 @@
 	return lock_ref_sha1_basic(ref, old_sha1, NULL);
 }
 
+static struct lock_file packlock;
+
 static int repack_without_ref(const char *refname)
 {
 	struct ref_list *list, *packed_ref_list;
 	int fd;
 	int found = 0;
-	struct lock_file packlock;
 
 	packed_ref_list = get_packed_refs();
 	for (list = packed_ref_list; list; list = list->next) {