svn commit: r272373 - stable/9/bin/rm

Glen Barber gjb at FreeBSD.org
Wed Oct 1 16:19:00 UTC 2014


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

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.
  
  Sponsored by:	The FreeBSD Foundation

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

Modified: stable/9/bin/rm/rm.c
==============================================================================
--- stable/9/bin/rm/rm.c	Wed Oct  1 16:18:40 2014	(r272372)
+++ stable/9/bin/rm/rm.c	Wed Oct  1 16:18:59 2014	(r272373)
@@ -329,7 +329,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