]> Savannah Git Hosting - gnulib.git/commitdiff
fts: ensure leaf optimization is used for NFS
authorKamil Dudka <kdudka@redhat.com>
Wed, 9 Dec 2015 06:34:56 +0000 (07:34 +0100)
committerPádraig Brady <P@draigBrady.com>
Sun, 20 Dec 2015 23:55:50 +0000 (23:55 +0000)
NFS provides usable dirent.d_type but not necessarily for all entries
of large directories.  See <https://bugzilla.redhat.com/1252549>
* lib/fts.c (leaf_optimization_applies): Append NFS on the white list.

ChangeLog
lib/fts.c

index 464dc7484b081d9862bd451d14d06a71e1e4a0a4..4b0eb39b942516c1274ae86a3e121f581eeaee3d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-12-20  Kamil Dudka  <kdudka@redhat.com>
+
+       fts: ensure leaf optimization is used for NFS
+       NFS provides usable dirent.d_type but not necessarily for all entries
+       of large directories.  See <https://bugzilla.redhat.com/1252549>
+       * lib/fts.c (leaf_optimization_applies): Append NFS on the white list.
+
 2015-12-20  Pádraig Brady  <P@draigBrady.com>
 
        fts: enable leaf optimization for XFS
index 99679c7a96181be2c022f06cbed2aac638cb368a..c91d7a1acd3741ce60fba4a9593f1192102cf72d 100644 (file)
--- a/lib/fts.c
+++ b/lib/fts.c
@@ -718,6 +718,11 @@ leaf_optimization_applies (int dir_fd)
 
   switch (fs_buf.f_type)
     {
+    case S_MAGIC_NFS:
+      /* NFS provides usable dirent.d_type but not necessarily for all entries
+         of large directories.  See <https://bugzilla.redhat.com/1252549>.  */
+      return true;
+
       /* List here the file system types that lack usable dirent.d_type
          info, yet for which the optimization does apply.  */
     case S_MAGIC_REISERFS: