entry: extract update_ce_after_write() from write_entry()
The code that updates the in-memory index information after an entry is written currently resides in write_entry(). Extract it to a public function so that it can be called by the parallel checkout functions, outside entry.c, in a later patch. Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
49cfd9032a
commit
584a0d13f2
25
entry.c
25
entry.c
@ -251,6 +251,18 @@ int finish_delayed_checkout(struct checkout *state, int *nr_checkouts)
|
|||||||
return errs;
|
return errs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void update_ce_after_write(const struct checkout *state, struct cache_entry *ce,
|
||||||
|
struct stat *st)
|
||||||
|
{
|
||||||
|
if (state->refresh_cache) {
|
||||||
|
assert(state->istate);
|
||||||
|
fill_stat_cache_info(state->istate, ce, st);
|
||||||
|
ce->ce_flags |= CE_UPDATE_IN_BASE;
|
||||||
|
mark_fsmonitor_invalid(state->istate, ce);
|
||||||
|
state->istate->cache_changed |= CE_ENTRY_CHANGED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int write_entry(struct cache_entry *ce,
|
static int write_entry(struct cache_entry *ce,
|
||||||
char *path, const struct checkout *state, int to_tempfile)
|
char *path, const struct checkout *state, int to_tempfile)
|
||||||
{
|
{
|
||||||
@ -371,15 +383,10 @@ static int write_entry(struct cache_entry *ce,
|
|||||||
|
|
||||||
finish:
|
finish:
|
||||||
if (state->refresh_cache) {
|
if (state->refresh_cache) {
|
||||||
assert(state->istate);
|
if (!fstat_done && lstat(ce->name, &st) < 0)
|
||||||
if (!fstat_done)
|
return error_errno("unable to stat just-written file %s",
|
||||||
if (lstat(ce->name, &st) < 0)
|
ce->name);
|
||||||
return error_errno("unable to stat just-written file %s",
|
update_ce_after_write(state, ce , &st);
|
||||||
ce->name);
|
|
||||||
fill_stat_cache_info(state->istate, ce, &st);
|
|
||||||
ce->ce_flags |= CE_UPDATE_IN_BASE;
|
|
||||||
mark_fsmonitor_invalid(state->istate, ce);
|
|
||||||
state->istate->cache_changed |= CE_ENTRY_CHANGED;
|
|
||||||
}
|
}
|
||||||
delayed:
|
delayed:
|
||||||
return 0;
|
return 0;
|
||||||
|
2
entry.h
2
entry.h
@ -41,5 +41,7 @@ void unlink_entry(const struct cache_entry *ce);
|
|||||||
|
|
||||||
void *read_blob_entry(const struct cache_entry *ce, unsigned long *size);
|
void *read_blob_entry(const struct cache_entry *ce, unsigned long *size);
|
||||||
int fstat_checkout_output(int fd, const struct checkout *state, struct stat *st);
|
int fstat_checkout_output(int fd, const struct checkout *state, struct stat *st);
|
||||||
|
void update_ce_after_write(const struct checkout *state, struct cache_entry *ce,
|
||||||
|
struct stat *st);
|
||||||
|
|
||||||
#endif /* ENTRY_H */
|
#endif /* ENTRY_H */
|
||||||
|
Reference in New Issue
Block a user