[PATCH/RFC v7 0/5] git checkout: optimise away lots of lstat() calls
- From
- Kjetil Barvik <barvik@broadpark.no>
- Date
- Jan 13, 2009, 12:29 UTC
- Message-ID
- <1231849748-8244-1-git-send-email-barvik@broadpark.no>
Changes since version 6:
a) The patch-split was not correct for patch 3/3. In v6 it could look like the lines:
- char path[PATH_MAX]; + char path[PATH_MAX + 1];
was a random bugfix. In this version for patch 3/5 we also change "&& last_slash < PATH_MAX" into "&& last_slash <= PATH_MAX" (and similar for the else-if part). This could also make the intro- duction of the 'FL_FULLPATH' flag more readable for this patch.
b) Cleanup and added 3 comments to 'greatest_match_lstat_cache()'
c) Introduction of the 'invalidate_lstat_cache()' function. How does the interface look? good? bad? Does the function do what people expect it to do?
d) Reintroduction of the 'clear_lstat_cache()' function.
Junio, I hope it is possible to use patches 1/5, 2/5 and 3/5 from this version instead of 1/3, 2/3 and 3/3 from version 6, for the possible future in origin/pu? See also a) above. Thanks in advance!
In general, are we allowed to redesign the patch-series while the patches is inside origin/pu?
Kjetil Barvik (5): lstat_cache(): more cache effective symlink/directory detection lstat_cache(): introduce has_symlink_or_noent_leading_path() function lstat_cache(): introduce has_dirs_only_path() function lstat_cache(): introduce invalidate_lstat_cache() function lstat_cache(): introduce clear_lstat_cache() function
cache.h | 4 + entry.c | 34 +++----- symlinks.c | 249 ++++++++++++++++++++++++++++++++++++++++++++++---------- unpack-trees.c | 4 +- 4 files changed, 222 insertions(+), 69 deletions(-)