[SUNRPC]: annotate hash_ip()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
8a74ff7770
Коммит
4806126d78
|
@ -101,9 +101,9 @@ static void ip_map_put(struct kref *kref)
|
||||||
* IP addresses in reverse-endian (i.e. on a little-endian machine).
|
* IP addresses in reverse-endian (i.e. on a little-endian machine).
|
||||||
* So use a trivial but reliable hash instead
|
* So use a trivial but reliable hash instead
|
||||||
*/
|
*/
|
||||||
static inline int hash_ip(unsigned long ip)
|
static inline int hash_ip(__be32 ip)
|
||||||
{
|
{
|
||||||
int hash = ip ^ (ip>>16);
|
int hash = (__force u32)ip ^ ((__force u32)ip>>16);
|
||||||
return (hash ^ (hash>>8)) & 0xff;
|
return (hash ^ (hash>>8)) & 0xff;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -284,7 +284,7 @@ static struct ip_map *ip_map_lookup(char *class, struct in_addr addr)
|
||||||
ip.m_addr = addr;
|
ip.m_addr = addr;
|
||||||
ch = sunrpc_cache_lookup(&ip_map_cache, &ip.h,
|
ch = sunrpc_cache_lookup(&ip_map_cache, &ip.h,
|
||||||
hash_str(class, IP_HASHBITS) ^
|
hash_str(class, IP_HASHBITS) ^
|
||||||
hash_ip((unsigned long)addr.s_addr));
|
hash_ip(addr.s_addr));
|
||||||
|
|
||||||
if (ch)
|
if (ch)
|
||||||
return container_of(ch, struct ip_map, h);
|
return container_of(ch, struct ip_map, h);
|
||||||
|
@ -313,7 +313,7 @@ static int ip_map_update(struct ip_map *ipm, struct unix_domain *udom, time_t ex
|
||||||
ch = sunrpc_cache_update(&ip_map_cache,
|
ch = sunrpc_cache_update(&ip_map_cache,
|
||||||
&ip.h, &ipm->h,
|
&ip.h, &ipm->h,
|
||||||
hash_str(ipm->m_class, IP_HASHBITS) ^
|
hash_str(ipm->m_class, IP_HASHBITS) ^
|
||||||
hash_ip((unsigned long)ipm->m_addr.s_addr));
|
hash_ip(ipm->m_addr.s_addr));
|
||||||
if (!ch)
|
if (!ch)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
cache_put(ch, &ip_map_cache);
|
cache_put(ch, &ip_map_cache);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче