The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d8ef477a7bfeed988561ad5a224878b24ee65352
commit d8ef477a7bfeed988561ad5a224878b24ee65352 Author: Mark Johnston <ma...@freebsd.org> AuthorDate: 2025-07-15 00:38:21 +0000 Commit: Mark Johnston <ma...@freebsd.org> CommitDate: 2025-07-29 12:08:54 +0000 fdescfs: Set *eofflag in fdesc_readdir() Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D51319 (cherry picked from commit da84054f3a508ceab4474e4a002c87813963cc84) --- sys/fs/fdescfs/fdesc_vnops.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c index 47fb387a007e..f4b3eba91ef3 100644 --- a/sys/fs/fdescfs/fdesc_vnops.c +++ b/sys/fs/fdescfs/fdesc_vnops.c @@ -549,6 +549,8 @@ fdesc_readdir(struct vop_readdir_args *ap) fmp = VFSTOFDESC(ap->a_vp->v_mount); if (ap->a_ncookies != NULL) *ap->a_ncookies = 0; + if (ap->a_eofflag != NULL) + *ap->a_eofflag = 0; off = (int)uio->uio_offset; if (off != uio->uio_offset || off < 0 || (u_int)off % UIO_MX != 0 || @@ -561,7 +563,12 @@ fdesc_readdir(struct vop_readdir_args *ap) fcnt = i - 2; /* The first two nodes are `.' and `..' */ FILEDESC_SLOCK(fdp); - while (i < fdp->fd_nfiles + 2 && uio->uio_resid >= UIO_MX) { + while (uio->uio_resid >= UIO_MX) { + if (i >= fdp->fd_nfiles + 2) { + if (ap->a_eofflag != NULL) + *ap->a_eofflag = 1; + break; + } bzero((caddr_t)dp, UIO_MX); switch (i) { case 0: /* `.' */