diff options
author | bde <bde@FreeBSD.org> | 1995-11-13 18:47:40 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1995-11-13 18:47:40 +0000 |
commit | 57b44bbf038c8d1cc94e06e0fff7624f9f2b964d (patch) | |
tree | 3280f069c6b8a8dce0e59cd870ef9872218e2b9b /sys/fs/msdosfs | |
parent | 16f9bc5625e92cdb96ae817fd5ba4d9fb69d41ba (diff) | |
download | FreeBSD-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/msdosfs')
-rw-r--r-- | sys/fs/msdosfs/msdosfs_vnops.c | 17 |
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); |