Re: [PATCH v2 08/17] read-cache: invalidate untracked cache data when reading WAMA
From: Duy Nguyen <hidden>
Date: 2016-06-15 23:09:05
On Sat, Mar 19, 2016 at 8:04 AM, David Turner [off-list ref] wrote:
quoted hunk ↗ jump to hunk
@@ -1407,10 +1472,24 @@ static int read_watchman_ext(struct index_state *istate, const void *data, ewah_each_bit(bitmap, mark_no_watchman, istate); ewah_free(bitmap); - /* - * TODO: update the untracked cache from the untracked data in this - * extension. - */ + if (istate->untracked && istate->untracked->root) { + int i; + const char *untracked; + + untracked = data + len + 8 + bitmap_size; + for (i = 0; i < untracked_nr; ++i) { + int len = strlen(untracked); + string_list_append(&istate->untracked->invalid_untracked, + untracked); + untracked += len + 1; + } + + for_each_string_list(&istate->untracked->invalid_untracked, + mark_untracked_invalid, istate->untracked);
I think it's a bit early to invalidate untracked cache here. We can do that in refresh_by_watchman() in 10/17, where ce_mark_uptodate() to prevent lstat() is also done.
+
+ if (untracked_nr)
+ istate->cache_changed |= WATCHMAN_CHANGED;
+ }
return 0;
}-- Duy