diff options
author | Jim Meyering <meyering@redhat.com> | 2009-09-03 15:15:09 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-09-11 14:08:58 +0200 |
commit | 722287e443c93e04e724e2812857a395cfab0b60 (patch) | |
tree | 6513b8c652ab59cd12c79fe722930a3ce5f73978 /m4 | |
parent | 9966c92dd4851db611ad88fc1eb68b01fffcaea3 (diff) | |
download | coreutils-722287e443c93e04e724e2812857a395cfab0b60.tar.xz |
rm: improve efficiency of rm -r (without -f) from O(N^2) to O(N)
where N is the depth of the deepest hierarchy rm is processing.
* src/remove.c (write_protected_non_symlink): Use faccessat to
avoid O(N)-per-entry cost of calling euidaccess.
* m4/jm-macros.m4 (coreutils_MACROS): Check for faccessat.
* NEWS (Improvements): Mention it.
Diffstat (limited to 'm4')
-rw-r--r-- | m4/jm-macros.m4 | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/m4/jm-macros.m4 b/m4/jm-macros.m4 index f4d43f1dd..75ee75e2d 100644 --- a/m4/jm-macros.m4 +++ b/m4/jm-macros.m4 @@ -92,6 +92,9 @@ AC_DEFUN([coreutils_MACROS], # for cp.c AC_CHECK_FUNCS_ONCE([utimensat]) + # for remove.c + AC_CHECK_FUNCS_ONCE([faccessat]) + dnl This can't use AC_REQUIRE; I'm not quite sure why. cu_PREREQ_STAT_PROG |