mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
FreeBSD: Update argument types for VOP_READDIR
A recent commit to FreeBSD changed the type of
vop_readdir_args.a_cookies to a uint64_t**. There is no functional
impact to ZFS because ZFS only uses 32-bit cookies, which will be
zero-extended to 64-bits by the existing code.
b214fcceac
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Alan Somers <asomers@gmail.com>
Closes #12874
This commit is contained in:
parent
eb51a9d747
commit
ca1b2bb4b5
@ -113,6 +113,12 @@ VFS_SMR_DECLARE;
|
||||
#define VNCHECKREF(vp)
|
||||
#endif
|
||||
|
||||
#if __FreeBSD_version >= 1400045
|
||||
typedef uint64_t cookie_t;
|
||||
#else
|
||||
typedef ulong_t cookie_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Programming rules.
|
||||
*
|
||||
@ -1665,7 +1671,7 @@ zfs_rmdir(znode_t *dzp, const char *name, znode_t *cwd, cred_t *cr, int flags)
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp,
|
||||
int *ncookies, ulong_t **cookies)
|
||||
int *ncookies, cookie_t **cookies)
|
||||
{
|
||||
znode_t *zp = VTOZ(vp);
|
||||
iovec_t *iovp;
|
||||
@ -1687,7 +1693,7 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp,
|
||||
boolean_t check_sysattrs;
|
||||
uint8_t type;
|
||||
int ncooks;
|
||||
ulong_t *cooks = NULL;
|
||||
cookie_t *cooks = NULL;
|
||||
int flags = 0;
|
||||
|
||||
ZFS_ENTER(zfsvfs);
|
||||
@ -1764,7 +1770,7 @@ zfs_readdir(vnode_t *vp, zfs_uio_t *uio, cred_t *cr, int *eofp,
|
||||
*/
|
||||
ncooks = zfs_uio_resid(uio) / (sizeof (struct dirent) -
|
||||
sizeof (((struct dirent *)NULL)->d_name) + 1);
|
||||
cooks = malloc(ncooks * sizeof (ulong_t), M_TEMP, M_WAITOK);
|
||||
cooks = malloc(ncooks * sizeof (*cooks), M_TEMP, M_WAITOK);
|
||||
*cookies = cooks;
|
||||
*ncookies = ncooks;
|
||||
}
|
||||
@ -4718,7 +4724,7 @@ struct vop_readdir_args {
|
||||
struct ucred *a_cred;
|
||||
int *a_eofflag;
|
||||
int *a_ncookies;
|
||||
ulong_t **a_cookies;
|
||||
cookie_t **a_cookies;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user