Same concern here about staticness.
On Sun, 2018-05-06 at 16:10 +0200, Martin Ågren wrote:
Show 48 quoted lines
> After taking the lock we check whether we got it and die otherwise.
> But
> since we take the lock using `LOCK_DIE_ON_ERROR`, we would already
> have
> died.
>
> Unlike in the previous patch, this function is not prepared for
> indicating errors via a `strbuf err`, so let's just drop the dead
> code.
> Any improved error-handling can be added later.
>
> While at it, make the lock non-static and reduce its scope.
>
> Signed-off-by: Martin Ågren <martin.agren@gmail.com>
> ---
> refs.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/refs.c b/refs.c
> index 8c50b8b139..7abd30dfe1 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -689,20 +689,17 @@ static int write_pseudoref(const char
> *pseudoref, const struct object_id *oid,
>
> static int delete_pseudoref(const char *pseudoref, const struct
> object_id *old_oid)
> {
> - static struct lock_file lock;
> const char *filename;
>
> filename = git_path("%s", pseudoref);
>
> if (old_oid && !is_null_oid(old_oid)) {
> - int fd;
> + struct lock_file lock = LOCK_INIT;
> struct object_id actual_old_oid;
>
> - fd = hold_lock_file_for_update_timeout(
> + hold_lock_file_for_update_timeout(
> &lock, filename, LOCK_DIE_ON_ERROR,
> get_files_ref_lock_timeout_ms());
> - if (fd < 0)
> - die_errno(_("Could not open '%s' for
> writing"), filename);
> if (read_ref(pseudoref, &actual_old_oid))
> die("could not read ref '%s'", pseudoref);
> if (oidcmp(&actual_old_oid, old_oid)) {