summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1995-11-13 18:47:40 +0000
committerbde <bde@FreeBSD.org>1995-11-13 18:47:40 +0000
commit57b44bbf038c8d1cc94e06e0fff7624f9f2b964d (patch)
tree3280f069c6b8a8dce0e59cd870ef9872218e2b9b /sys/fs
parent16f9bc5625e92cdb96ae817fd5ba4d9fb69d41ba (diff)
downloadFreeBSD-src-57b44bbf038c8d1cc94e06e0fff7624f9f2b964d.zip
FreeBSD-src-57b44bbf038c8d1cc94e06e0fff7624f9f2b964d.tar.gz
Fixed getdirentries() on nfs mounted msdosfs's. No cookies were returned
for certain common combinations of directory sizes, cluster sizes, and i/o sizes (e.g., 4K, 4K, and 4K). The fix in rev. 1.21 was incomplete. Reviewed by: dfr Obtained from: party from NetBSD
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/msdosfs/msdosfs_vnops.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c
index de44543..c3ace27 100644
--- a/sys/fs/msdosfs/msdosfs_vnops.c
+++ b/sys/fs/msdosfs/msdosfs_vnops.c
@@ -1,4 +1,4 @@
-/* $Id: msdosfs_vnops.c,v 1.26 1995/10/29 15:31:53 phk Exp $ */
+/* $Id: msdosfs_vnops.c,v 1.27 1995/11/09 08:17:23 bde Exp $ */
/* $NetBSD: msdosfs_vnops.c,v 1.20 1994/08/21 18:44:13 ws Exp $ */
/*-
@@ -1595,19 +1595,8 @@ msdosfs_readdir(ap)
on = (uio->uio_offset - bias) & pmp->pm_crbomask;
n = min((u_long) (pmp->pm_bpcluster - on), uio->uio_resid);
diff = dep->de_FileSize - (uio->uio_offset - bias);
- if (diff <= 0) {
- if(ap->a_eofflag)
- *ap->a_eofflag = 1;
- if(ap->a_ncookies != NULL) {
- u_int *cookies;
-
- MALLOC(cookies, u_int *, 1 * sizeof(u_int),
- M_TEMP, M_WAITOK);
- *ap->a_ncookies = 0;
- *ap->a_cookies = cookies;
- }
- return 0;
- }
+ if (diff <= 0)
+ break;
if (diff < n)
n = diff;
error = pcbmap(dep, lbn, &bn, &cn);
OpenPOWER on IntegriCloud