diff options
Diffstat (limited to 'sys/nfsserver')
-rw-r--r-- | sys/nfsserver/nfs_fha.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/nfsserver/nfs_fha.c b/sys/nfsserver/nfs_fha.c index 901a0ce..cad13dd 100644 --- a/sys/nfsserver/nfs_fha.c +++ b/sys/nfsserver/nfs_fha.c @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include <sys/systm.h> #include <sys/sysproto.h> #include <sys/kernel.h> +#include <sys/endian.h> #include <sys/sysctl.h> #include <sys/vnode.h> #include <sys/malloc.h> @@ -206,7 +207,11 @@ fha_extract_info(struct svc_req *req, struct fha_info *i) if (error) goto out; - i->fh = *(const u_int64_t *)(fh.fh_generic.fh_fid.fid_data); +#if _BYTE_ORDER == _LITTLE_ENDIAN + i->fh = le64dec(fh.fh_generic.fh_fid.fid_data); +#else + i->fh = be64dec(fh.fh_generic.fh_fid.fid_data); +#endif /* Content ourselves with zero offset for all but reads. */ if (procnum != NFSPROC_READ) |