diff options
Diffstat (limited to 'include/linux/sunrpc/xdr.h')
| -rw-r--r-- | include/linux/sunrpc/xdr.h | 10 | 
1 files changed, 4 insertions, 6 deletions
diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h index b99c625fddf..7da466ba4b0 100644 --- a/include/linux/sunrpc/xdr.h +++ b/include/linux/sunrpc/xdr.h @@ -117,17 +117,15 @@ static inline __be32 *xdr_encode_array(__be32 *p, const void *s, unsigned int le  static inline __be32 *  xdr_encode_hyper(__be32 *p, __u64 val)  { -	*p++ = htonl(val >> 32); -	*p++ = htonl(val & 0xFFFFFFFF); -	return p; +	*(__be64 *)p = cpu_to_be64(val); +	return p + 2;  }  static inline __be32 *  xdr_decode_hyper(__be32 *p, __u64 *valp)  { -	*valp  = ((__u64) ntohl(*p++)) << 32; -	*valp |= ntohl(*p++); -	return p; +	*valp = be64_to_cpup((__be64 *)p); +	return p + 2;  }  /*  |