svn commit: r272372 - stable/10/bin/rm

Glen Barber gjb at FreeBSD.org
Wed Oct 1 16:18:41 UTC 2014


Author: gjb
Date: Wed Oct  1 16:18:40 2014
New Revision: 272372
URL: https://svnweb.freebsd.org/changeset/base/272372

Log:
  MFC r268376 (imp):
  
    rm -rf can fail sometimes with an error from fts_read. Make it
    honor fflag to ignore fts_read errors, but stop deleting from
    that directory because no further progress can be made.
  
    When building a kernel with a high -j value on a high core count
    machine, during the cleanobj phase we can wind up doing multiple
    rm -rf at the same time for modules that have subdirectories. This
    exposed this race (sometimes) as fts_read can return an error if
    the directory is removed by another rm -rf. Since the intent of
    the -f flag was to ignore errors, even if this was a bug in
    fts_read, we should ignore the error like we've been instructed
    to do.
  
  Approved by:	re (kib)
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/bin/rm/rm.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/bin/rm/rm.c
==============================================================================
--- stable/10/bin/rm/rm.c	Wed Oct  1 16:16:01 2014	(r272371)
+++ stable/10/bin/rm/rm.c	Wed Oct  1 16:18:40 2014	(r272372)
@@ -335,7 +335,7 @@ err:
 		warn("%s", p->fts_path);
 		eval = 1;
 	}
-	if (errno)
+	if (!fflag && errno)
 		err(1, "fts_read");
 	fts_close(fts);
 }


More information about the svn-src-all mailing list