XFS provides usable dirent.d_type only for DT_DIR,
but the noleaf optimization still applies, as confirmed with:
test $(($(find . -maxdepth 1 -type d | wc -l) + 1)) = $(stat -c %h .)
Enabling this gives significant traversal speedup.
Testing with find(1) gives:
$ time find/find-before /usr/share >/dev/null
real 0m0.410s
user 0m0.145s
sys 0m0.266s
$ time find/find-after /usr/share >/dev/null
real 0m0.278s
user 0m0.147s
sys 0m0.131s
* lib/fts.c (leaf_optimization_applies): Add XFS to the white list.
+2015-12-20 Pádraig Brady <P@draigBrady.com>
+
+ fts: enable leaf optimization for XFS
+ XFS provides usable dirent.d_type only for DT_DIR,
+ but the noleaf optimization still applies.
+ * lib/fts.c (leaf_optimization_applies): Add XFS to the white list.
+
2015-12-17 Paul Eggert <eggert@cs.ucla.edu>
intprops: comment fix
# define S_MAGIC_TMPFS 0x1021994
# define S_MAGIC_NFS 0x6969
# define S_MAGIC_REISERFS 0x52654973
+# define S_MAGIC_XFS 0x58465342
# define S_MAGIC_PROC 0x9FA0
/* Return false if it is easy to determine the file system type of
/* List here the file system types that lack usable dirent.d_type
info, yet for which the optimization does apply. */
case S_MAGIC_REISERFS:
+ case S_MAGIC_XFS:
return true;
case S_MAGIC_PROC: