diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/remove.c | 7 |
3 files changed, 15 insertions, 3 deletions
@@ -1,3 +1,11 @@ +2006-09-26 Jim Meyering <jim@meyering.net> + + * NEWS: rm works around a bug in Darwin 8.6.1 w/NFS that kept + it from removing a directory containing 188 or more entries. + * src/remove.c (CONSECUTIVE_READDIR_UNLINK_THRESHOLD): Decrease by + 20, go work around the buggy readdir on Darwin 8.6.1 with NFS. + Reported by Matthew Woehlke. + 2006-09-26 Paul Eggert <eggert@cs.ucla.edu> * NEWS: "groups user" no longer outputs "user :"; you need at least @@ -4,6 +4,9 @@ GNU coreutils NEWS -*- outline -*- ** Improved robustness + rm works around a bug in Darwin 8.6.1 w/NFS that kept it from removing + a directory containing 188 or more entries. + sort would fail to handle very large input (around 40GB) on systems with a mkstemp function that returns a file descriptor limited to 32-bit offsets. diff --git a/src/remove.c b/src/remove.c index 670ba485b..24426cff9 100644 --- a/src/remove.c +++ b/src/remove.c @@ -56,11 +56,12 @@ SunOS's readdir when applied to ufs file systems and Darwin 6.5's (and OSX v.10.3.8's) HFS+. This maximum is conservative in that demonstrating the problem seems to require a directory containing - at least 254 deletable entries (which doesn't count . and ..), so - we could conceivably increase the maximum value to 254. */ + at least 254 deletable entries (which doesn't count . and ..). + However, in 2006, we see that Darwin 8.6.1, using NFS has an even + lower limit: 188. */ enum { - CONSECUTIVE_READDIR_UNLINK_THRESHOLD = 200 + CONSECUTIVE_READDIR_UNLINK_THRESHOLD = 180 }; enum Ternary |