Skip to content
  • Kjetil Barvik's avatar
    lstat_cache(): introduce has_symlink_or_noent_leading_path() function · 09c93066
    Kjetil Barvik authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    In some cases, especially inside the unpack-trees.c file, and inside
    the verify_absent() function, we can avoid some unnecessary calls to
    lstat(), if the lstat_cache() function can also be told to keep track
    of non-existing directories.
    
    So we update the lstat_cache() function to handle this new fact,
    introduce a new wrapper function, and the result is that we save lots
    of lstat() calls for a removed directory which previously contained
    lots of files, when we call this new wrapper of lstat_cache() instead
    of the old one.
    
    We do similar changes inside the unlink_entry() function, since if we
    can already say that the leading directory component of a pathname
    does not exist, it is not necessary to try to remove a pathname below
    it!
    
    Thanks to Junio C Hamano, Linus Torvalds and Rene Scharfe for valuable
    comments to this patch!
    
    Signed-off-by: default avatarKjetil Barvik <barvik@broadpark.no>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    09c93066