diff options
Diffstat (limited to 'fs/nfsd/nfscache.c')
| -rw-r--r-- | fs/nfsd/nfscache.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c index 6040da8830ff..ff9567633245 100644 --- a/fs/nfsd/nfscache.c +++ b/fs/nfsd/nfscache.c | |||
| @@ -221,7 +221,12 @@ static void | |||
| 221 | hash_refile(struct svc_cacherep *rp) | 221 | hash_refile(struct svc_cacherep *rp) |
| 222 | { | 222 | { |
| 223 | hlist_del_init(&rp->c_hash); | 223 | hlist_del_init(&rp->c_hash); |
| 224 | hlist_add_head(&rp->c_hash, cache_hash + hash_32(rp->c_xid, maskbits)); | 224 | /* |
| 225 | * No point in byte swapping c_xid since we're just using it to pick | ||
| 226 | * a hash bucket. | ||
| 227 | */ | ||
| 228 | hlist_add_head(&rp->c_hash, cache_hash + | ||
| 229 | hash_32((__force u32)rp->c_xid, maskbits)); | ||
| 225 | } | 230 | } |
| 226 | 231 | ||
| 227 | /* | 232 | /* |
| @@ -356,7 +361,11 @@ nfsd_cache_search(struct svc_rqst *rqstp, __wsum csum) | |||
| 356 | struct hlist_head *rh; | 361 | struct hlist_head *rh; |
| 357 | unsigned int entries = 0; | 362 | unsigned int entries = 0; |
| 358 | 363 | ||
| 359 | rh = &cache_hash[hash_32(rqstp->rq_xid, maskbits)]; | 364 | /* |
| 365 | * No point in byte swapping rq_xid since we're just using it to pick | ||
| 366 | * a hash bucket. | ||
| 367 | */ | ||
| 368 | rh = &cache_hash[hash_32((__force u32)rqstp->rq_xid, maskbits)]; | ||
| 360 | hlist_for_each_entry(rp, rh, c_hash) { | 369 | hlist_for_each_entry(rp, rh, c_hash) { |
| 361 | ++entries; | 370 | ++entries; |
| 362 | if (nfsd_cache_match(rqstp, csum, rp)) { | 371 | if (nfsd_cache_match(rqstp, csum, rp)) { |
