Skip to content

Commit

Permalink
Merge pull request #1149 from jeffhostetler/jeffhostetler/do_write_in…
Browse files Browse the repository at this point in the history
…dex_mtime

read-cache: close index.lock in do_write_index
  • Loading branch information
dscho committed Apr 26, 2017
2 parents d14a8f8 + d32cf6f commit 91e25e0
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions read-cache.c
Expand Up @@ -2141,9 +2141,10 @@ void update_index_if_able(struct index_state *istate, struct lock_file *lockfile
rollback_lock_file(lockfile);
}

static int do_write_index(struct index_state *istate, int newfd,
static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
int strip_extensions)
{
int newfd = tempfile->fd;
git_SHA_CTX c;
struct cache_header hdr;
int i, err, removed, extended, hdr_version;
Expand Down Expand Up @@ -2252,7 +2253,11 @@ static int do_write_index(struct index_state *istate, int newfd,
return -1;
}

if (ce_flush(&c, newfd, istate->sha1) || fstat(newfd, &st))
if (ce_flush(&c, newfd, istate->sha1))
return -1;
if (close_tempfile(tempfile))
return error(_("could not close '%s'"), tempfile->filename.buf);
if (lstat(tempfile->filename.buf, &st))
return -1;
istate->timestamp.sec = (unsigned int)st.st_mtime;
istate->timestamp.nsec = ST_MTIME_NSEC(st);
Expand All @@ -2275,7 +2280,7 @@ static int commit_locked_index(struct lock_file *lk)
static int do_write_locked_index(struct index_state *istate, struct lock_file *lock,
unsigned flags)
{
int ret = do_write_index(istate, get_lock_file_fd(lock), 0);
int ret = do_write_index(istate, &lock->tempfile, 0);
if (ret)
return ret;
assert((flags & (COMMIT_LOCK | CLOSE_LOCK)) !=
Expand Down Expand Up @@ -2313,7 +2318,7 @@ static int write_shared_index(struct index_state *istate,
return do_write_locked_index(istate, lock, flags);
}
move_cache_to_base_index(istate);
ret = do_write_index(si->base, fd, 1);
ret = do_write_index(si->base, &temporary_sharedindex, 1);
if (ret) {
delete_tempfile(&temporary_sharedindex);
return ret;
Expand Down

0 comments on commit 91e25e0

Please sign in to comment.