git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] dir.c: avoid stat() in valid_cached_dir()

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 28, 2017, 19:05 UTC
Message-ID
<xmqqd12yllkz.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20171228002807.22388-1-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
Show 8 quoted lines
> stat() may follow a symlink and return stat data of the link's target
> instead of the link itself. We are concerned about the link itself.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  I noticed this while looking at the untracked cache bug [1] but
>  because it's not directly related to that bug, I'm submitting it
>  separately here.
Thanks; it totally makes sense.
Show 19 quoted lines
>
>  [1] https://public-inbox.org/git/CACsJy8AmbKSp0mDLRaDCWn45veeNc03B-Gq8r8PQPrDt9bM_EA@mail.gmail.com/
>
>  dir.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/dir.c b/dir.c
> index 7c4b45e30e..edcb7bb462 100644
> --- a/dir.c
> +++ b/dir.c
> @@ -1809,7 +1809,7 @@ static int valid_cached_dir(struct dir_struct *dir,
>  	 */
>  	refresh_fsmonitor(istate);
>  	if (!(dir->untracked->use_fsmonitor && untracked->valid)) {
> -		if (stat(path->len ? path->buf : ".", &st)) {
> +		if (lstat(path->len ? path->buf : ".", &st)) {
>  			invalidate_directory(dir->untracked, untracked);
>  			memset(&untracked->stat_data, 0, sizeof(untracked->stat_data));
>  			return 0;
Previous: Nguyễn Thái Ngọc DuyNext: Junio C Hamano
Message 2 of 13 in “dir.c: avoid stat() in valid_cached_dir()”
  1. dir.c: avoid stat() in valid_cached_dir()Nguyễn Thái Ngọc Duy, Dec 28, 2017
  2. Junio C HamanoDec 28, 2017
  3. Junio C HamanoDec 28, 2017
  4. Duy NguyenJan 1, 2018
  5. 0/5 untracked cache bug fixesÆvar Arnfjörð Bjarmason, Jan 3, 2018
  6. 1/5 status: add a failing test showing a core.untrackedCache bugÆvar Arnfjörð Bjarmason, Jan 3, 2018
  7. 3/5 dir.c: fix missing dir invalidation in untracked codeÆvar Arnfjörð Bjarmason, Jan 3, 2018
  8. 4/5 update-index doc: note a fixed bug in the untracked cacheÆvar Arnfjörð Bjarmason, Jan 3, 2018
  9. 5/5 dir.c: stop ignoring opendir() error in open_cached_dir()Ævar Arnfjörð Bjarmason, Jan 3, 2018
  10. Duy NguyenJan 7, 2018
  11. 2/5 dir.c: avoid stat() in valid_cached_dir()Ævar Arnfjörð Bjarmason, Jan 3, 2018
  12. Ævar Arnfjörð BjarmasonDec 28, 2017
  13. Duy NguyenJan 2, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.