From a86a56f7d101fbdeed6a64eb6b351ba67bfa5d05 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 26 Sep 2006 20:42:43 +0000 Subject: * 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. --- ChangeLog | 8 ++++++++ NEWS | 3 +++ src/remove.c | 7 ++++--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1f31f0886..23e4e5a15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-09-26 Jim Meyering + + * 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 * NEWS: "groups user" no longer outputs "user :"; you need at least diff --git a/NEWS b/NEWS index 815b0762a..ce7280894 100644 --- a/NEWS +++ b/NEWS @@ -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 -- cgit v1.2.3-54-g00ecf