mwoehlke <address@hidden> wrote:
# using THRESHOLD = 150
$ tar xzf coreutils-6.3.tar.gz
$ until /path-to-rm -rf coreutils-6.3 ; do : ; done
# using THRESHOLD = 200 (default)
$ tar xzf coreutils-6.3.tar.gz
$ until /path-to-rm -rf coreutils-6.3 ; do : ; done
/path-to-rm: cannot remove directory `coreutils-6.3/m4':
Directory not empty
/path-to-rm: cannot remove directory `coreutils-6.3/lib':
Directory not empty
...so that is definitely the problem. Trying a few more values, I see:
150 - works
200 - broken
175 - works
190 - broken (but only in m4, not lib)
185 - works
188 - broken (same as 190)
187 - works
Honestly, I would probably go with 160-ish to be safe. :-)
Thanks.
I'll use 180.
The lower we go, the more of a performance penalty
we impose for directories with very many entries.
Already, in implementing remove.c that way, I've compromised
(however slightly) how GNU rm works in general, for the sake of
working reliably even on such broken file systems.