Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3d8d128 authored by Jeff Layton's avatar Jeff Layton Committed by J. Bruce Fields
Browse files

nfsd: clean up sparse endianness warnings in nfscache.c



We currently hash the XID to determine a hash bucket to use for the
reply cache entry, which is fed into hash_32 without byte-swapping it.
Add __force to make sparse happy, and add some comments to explain
why.

Signed-off-by: default avatarJeff Layton <jlayton@primarydata.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent f419992c
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -221,7 +221,12 @@ static void
hash_refile(struct svc_cacherep *rp)
{
	hlist_del_init(&rp->c_hash);
	hlist_add_head(&rp->c_hash, cache_hash + hash_32(rp->c_xid, maskbits));
	/*
	 * No point in byte swapping c_xid since we're just using it to pick
	 * a hash bucket.
	 */
	hlist_add_head(&rp->c_hash, cache_hash +
			hash_32((__force u32)rp->c_xid, maskbits));
}

/*
@@ -356,7 +361,11 @@ nfsd_cache_search(struct svc_rqst *rqstp, __wsum csum)
	struct hlist_head 	*rh;
	unsigned int		entries = 0;

	rh = &cache_hash[hash_32(rqstp->rq_xid, maskbits)];
	/*
	 * No point in byte swapping rq_xid since we're just using it to pick
	 * a hash bucket.
	 */
	rh = &cache_hash[hash_32((__force u32)rqstp->rq_xid, maskbits)];
	hlist_for_each_entry(rp, rh, c_hash) {
		++entries;
		if (nfsd_cache_match(rqstp, csum, rp)) {