diff options
author | Bruce Evans <bde@FreeBSD.org> | 1995-11-13 18:47:40 +0000 |
---|---|---|
committer | Bruce Evans <bde@FreeBSD.org> | 1995-11-13 18:47:40 +0000 |
commit | ebbcda3ef4c1934470ca8f0f450388b0c0a9a91b (patch) | |
tree | 3280f069c6b8a8dce0e59cd870ef9872218e2b9b /sys/fs | |
parent | 4accbdcc20d819122a8a109a741fbab2f183894f (diff) | |
download | src-ebbcda3ef4c1934470ca8f0f450388b0c0a9a91b.tar.gz src-ebbcda3ef4c1934470ca8f0f450388b0c0a9a91b.zip |
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
Notes
Notes:
svn path=/head/; revision=12265
Diffstat (limited to 'sys/fs')
-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 de4454399648..c3ace27b7b54 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); |