Module Name: src Committed By: simonb Date: Mon Sep 6 08:37:43 UTC 2021
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c Log Message: Clamp zfs nlinks at UINT32_MAX (nlink_t max) instead of (much) smaller 16-bit LINK_MAX until we bump LINK_MAX. Fixes fts(3) problems with "rm -rf" on zfs directories with > 32766 subdirectories. Thanks mlelstv@ and mrg@ for helping debug this. To generate a diff of this commit: cvs rdiff -u -r1.74 -r1.75 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.74 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.75 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.74 Sun Jul 18 23:57:13 2021 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Mon Sep 6 08:37:43 2021 @@ -3116,7 +3116,8 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, i links = zp->z_links + 1; else links = zp->z_links; - vap->va_nlink = MIN(links, LINK_MAX); /* nlink_t limit! */ + /* XXX NetBSD: use LINK_MAX when that value matches 32-bit nlink_t */ + vap->va_nlink = MIN(links, UINT32_MAX); /* nlink_t limit! */ vap->va_size = zp->z_size; #ifdef illumos vap->va_rdev = vp->v_rdev;