+2016-01-18 Pádraig Brady <P@draigBrady.com>
+
+ fts: don't unconditionally use leaf optimization for NFS
+ NFS st_nlink are not accurate on all implementations,
+ leading to aborts() if that assumption is made.
+ See <https://bugzilla.redhat.com/1299169>
+ * lib/fts.c (leaf_optimization_applies): Remove NFS from
+ the white list, and document the issue.
+
2016-01-15 Paul Eggert <eggert@cs.ucla.edu>
KO Myung-Hun <komh@chollian.net>
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:
case S_MAGIC_XFS:
return true;
+ /* Explicitly list here any other file system type for which the
+ optimization is not applicable, but need documentation. */
+ case S_MAGIC_NFS:
+ /* NFS provides usable dirent.d_type but not necessarily for all entries
+ of large directories, so as per <https://bugzilla.redhat.com/1252549>
+ NFS should return true. However st_nlink values are not accurate on
+ all implementations as per <https://bugzilla.redhat.com/1299169>. */
+ /* fall through */
case S_MAGIC_PROC:
- /* Explicitly listing this or any other file system type for which
- the optimization is not applicable is not necessary, but we leave
- it here to document the risk. Per http://bugs.debian.org/143111,
- /proc may have bogus stat.st_nlink values. */
+ /* Per <http://bugs.debian.org/143111> /proc may have
+ bogus stat.st_nlink values. */
/* fall through */
default:
return false;