On Tue, Apr 1, 2014 at 11:58 AM, Michael Haggerty <mhagger@xxxxxxxxxxxx> wrote: > Signed-off-by: Michael Haggerty <mhagger@xxxxxxxxxxxx> > --- > lockfile.c | 31 ++++++++++++++++--------------- > 1 file changed, 16 insertions(+), 15 deletions(-) > > diff --git a/lockfile.c b/lockfile.c > index 852d717..c06e134 100644 > --- a/lockfile.c > +++ b/lockfile.c > @@ -85,6 +85,14 @@ static void remove_lock_file_on_signal(int signo) > raise(signo); > } > > +static void reset_lock_file(struct lock_file *lk) > +{ > + lk->fd = -1; > + strbuf_setlen(&lk->filename, 0); > + strbuf_setlen(&lk->staging_filename, 0); strbuf_reset() perhaps? > + lk->flags = LOCK_FLAGS_ON_LIST; > +} > + > /* > * path = absolute or relative path name > * > @@ -185,8 +193,7 @@ static int lock_file(struct lock_file *lk, const char *path, int flags) > > lk->fd = open(lk->staging_filename.buf, O_RDWR | O_CREAT | O_EXCL, 0666); > if (lk->fd < 0) { > - strbuf_setlen(&lk->filename, 0); > - strbuf_setlen(&lk->staging_filename, 0); > + reset_lock_file(lk); > return -1; > } > if (adjust_shared_perm(lk->staging_filename.buf)) { > @@ -273,17 +280,12 @@ int close_lock_file(struct lock_file *lk) > > int commit_lock_file(struct lock_file *lk) > { > - int err = 0; > - > if (lk->fd >= 0 && close_lock_file(lk)) > return -1; > - if (rename(lk->staging_filename.buf, lk->filename.buf)) { > - err = -1; > - } else { > - strbuf_setlen(&lk->filename, 0); > - strbuf_setlen(&lk->staging_filename, 0); > - } > - return err; > + if (rename(lk->staging_filename.buf, lk->filename.buf)) > + return -1; > + reset_lock_file(lk); > + return 0; > } > > int hold_locked_index(struct lock_file *lk, int die_on_error) > @@ -306,8 +308,8 @@ int commit_locked_index(struct lock_file *lk) > return -1; > if (rename(lk->staging_filename.buf, alternate_index_output)) > return -1; > - strbuf_setlen(&lk->filename, 0); > - strbuf_setlen(&lk->staging_filename, 0); > + > + reset_lock_file(lk); > return 0; > } else { > return commit_lock_file(lk); > @@ -320,7 +322,6 @@ void rollback_lock_file(struct lock_file *lk) > if (lk->fd >= 0) > close_lock_file(lk); > unlink_or_warn(lk->staging_filename.buf); > - strbuf_setlen(&lk->filename, 0); > - strbuf_setlen(&lk->staging_filename, 0); > + reset_lock_file(lk); > } > } > -- > 1.9.0 > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html