[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug#369822: ls -i stats unnecessarily
From: |
Jim Meyering |
Subject: |
Re: Bug#369822: ls -i stats unnecessarily |
Date: |
Fri, 02 Jun 2006 00:27:46 +0200 |
I wrote:
> Thanks for the report.
>
> You're right that in some cases ls could be optimized to avoid the
> lstat calls. However deciding when to do it is not easy.
> It is possible
> - when dirent.d_ino is available (this is easy), and
> - when dirent.d_ino is guaranteed to be valid (this is tricky)
>
> The latter is harder because for some files (mount points in a chroot
> with a buggy glibc) d_ino is nonzero and wrong. In those cases, you have
> to use lstat to get the true value. The invalid d_ino problem came up
> recently with the report of pwd failing on systems with a losing (and
> slightly old) glibc.
>
> If someone else does all the work to make ensure the optimization
> is safe, I'd accept a patch.
After writing that, I remembered that this optimization
has already been done on the trunk. However, there's no check
for the glibc problem:
2006-02-25 Eric Blake <address@hidden>
In ls, avoid calling stat for --inode (-i), when possible.
* src/pwd.c (NOT_AN_INODE_NUMBER, D_INO): Move to ...
* src/system.h: ... here, for use in ...
* src/ls.c (main): ... here. Prefer dirent.d_ino to stat when
possible.
(gobble_file): Add inode argument.
(print_dir): Pass inode if available.
(usage): Remove inaccuracy.
The problem is rare enough that I won't be losing any
sleep over it. But it would be good to fix it, or at least
add a test case comparing st_ino vs. d_ino for every readable
directory from "." up to "/". Then (from test failure reports)
we can hope to get an idea of how often the problem arises.
- Re: Bug#369822: ls -i stats unnecessarily, Jim Meyering, 2006/06/01
- Re: Bug#369822: ls -i stats unnecessarily,
Jim Meyering <=
- Re: Bug#369822: ls -i stats unnecessarily, James Youngman, 2006/06/01
- Re: Bug#369822: ls -i stats unnecessarily, Jim Meyering, 2006/06/02
- Re: Bug#369822: ls -i stats unnecessarily, Paul Eggert, 2006/06/02
- Re: Bug#369822: ls -i stats unnecessarily, Ian Jackson, 2006/06/03
- Re: Bug#369822: ls -i stats unnecessarily, James Youngman, 2006/06/03
- Re: Bug#369822: ls -i stats unnecessarily, Ian Jackson, 2006/06/03
- Re: Bug#369822: ls -i stats unnecessarily, Jim Meyering, 2006/06/02
- Re: Bug#369822: ls -i stats unnecessarily, Paul Eggert, 2006/06/03
- Re: Bug#369822: ls -i stats unnecessarily, Ian Jackson, 2006/06/05
- Re: Bug#369822: ls -i stats unnecessarily, Paul Eggert, 2006/06/05