Date: Mon, 12 Nov 2018 14:23:14 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 233161] bsd find finds only 32756 directories with '-type d' switch Message-ID: <bug-233161-227-3aG2XqJMkN@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-233161-227@https.bugs.freebsd.org/bugzilla/> References: <bug-233161-227@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233161 sigsys@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sigsys@gmail.com --- Comment #1 from sigsys@gmail.com --- This seems to be caused by an optimization in lib/libc/gen/fts.c that assumes that there can be no more subdirectories in a given directory than indicated by st_nlink (since each subdirectory increases the link count of the parent with its ".." entry). This doesn't work when st_nlink gets capped by ZFS. AFAIK, UFS does not allow more subdirectories than st_nlink can count so the problem does not happen there. Removing "zfs" from ufslike_filesystems[] in fts.c should avoid the bug. A better fix would be to check if st_nlink seems saturated (with pathconf(2)/_PC_LINK_MAX I guess) and disable the optimization only then. nlink_t is 64 bits on 12.X so the problem probably doesn't exist there. -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-233161-227-3aG2XqJMkN>
