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);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to