On Wed, Jun 22, 2022 at 10:15:50AM -0400, Chuck Lever wrote: > +static u32 nfsd_file_obj_hashfn(const void *data, u32 len, u32 seed) > +{ > + const struct nfsd_file *nf = data; > + > + return jhash2((const u32 *)&nf->nf_inode, > + sizeof_field(struct nfsd_file, nf_inode) / sizeof(u32), > + seed); Out of curiosity - what are you using to allocate those? Because if it's a slab, then middle bits of address (i.e. lower bits of (unsigned long)data / L1_CACHE_BYTES) would better be random enough...