aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/msdosfs
diff options
context:
space:
mode:
authorAlan Somers <asomers@FreeBSD.org>2021-12-14 02:37:27 +0000
committerAlan Somers <asomers@FreeBSD.org>2021-12-16 03:54:57 +0000
commitb214fcceacad6b842545150664bd2695c1c2b34f (patch)
tree52b08274866d6f77ff16025bd63f6c1bd598c50f /sys/fs/msdosfs
parent32fbc5d824f51f97220bc5c61a23e0bf3ff2b470 (diff)
downloadsrc-b214fcceacad6b842545150664bd2695c1c2b34f.tar.gz
src-b214fcceacad6b842545150664bd2695c1c2b34f.zip
Change VOP_READDIR's cookies argument to a **uint64_t
The cookies argument is only used by the NFS server. NFSv2 defines the cookie as 32 bits on the wire, but NFSv3 increased it to 64 bits. Our VOP_READDIR, however, has always defined it as u_long, which is 32 bits on some architectures. Change it to 64 bits on all architectures. This doesn't matter for any in-tree file systems, but it matters for some FUSE file systems that use 64-bit directory cookies. PR: 260375 Reviewed by: rmacklem Differential Revision: https://reviews.freebsd.org/D33404
Diffstat (limited to 'sys/fs/msdosfs')
-rw-r--r--sys/fs/msdosfs/msdosfs_vnops.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vnops.c b/sys/fs/msdosfs/msdosfs_vnops.c
index a431190d7089..c071d9f44d86 100644
--- a/sys/fs/msdosfs/msdosfs_vnops.c
+++ b/sys/fs/msdosfs/msdosfs_vnops.c
@@ -1517,7 +1517,7 @@ msdosfs_readdir(struct vop_readdir_args *ap)
struct direntry *dentp;
struct dirent dirbuf;
struct uio *uio = ap->a_uio;
- u_long *cookies = NULL;
+ uint64_t *cookies = NULL;
int ncookies = 0;
off_t offset, off;
int chksum = -1;
@@ -1553,7 +1553,7 @@ msdosfs_readdir(struct vop_readdir_args *ap)
if (ap->a_ncookies) {
ncookies = uio->uio_resid / 16;
- cookies = malloc(ncookies * sizeof(u_long), M_TEMP,
+ cookies = malloc(ncookies * sizeof(*cookies), M_TEMP,
M_WAITOK);
*ap->a_cookies = cookies;
*ap->a_ncookies = ncookies;