Hello people!

This is path for chmod speedup (chmod only if newmode != oldmode), in
attach too:

--- a/src/chmod.c
+++ b/src/chmod.c
@@ -268,14 +268,23 @@ process_file (FTS *fts, FTSENT *ent)
.
       if (! S_ISLNK (old_mode))
         {
-          if (chmodat (fts->fts_cwd_fd, file, new_mode) == 0)
-            chmod_succeeded = true;
+          if ((old_mode & CHMOD_MODE_BITS) != (new_mode & CHMOD_MODE_BITS))
+            {
+              if (chmodat (fts->fts_cwd_fd, file, new_mode) == 0)
+                chmod_succeeded = true;
+              else
+                {
+                  if (! force_silent)
+                    {
+                      error (0, errno, _("changing permissions of %s"),
+                             quote (file_full_name));
+                    }
+                  ok = false;
+                }
+            }
           else
             {
-              if (! force_silent)
-                error (0, errno, _("changing permissions of %s"),
-                       quote (file_full_name));
-              ok = false;
+              chmod_succeeded = true; // skip set permissions
             }
         }
     }

Attachment: coreutils-8.20.patch002.tar.gz
Description: GNU Zip compressed data

Reply via email to