Loading fs/lockd/host.c +0 −69 Original line number Diff line number Diff line Loading @@ -162,75 +162,6 @@ static struct nlm_host *nlm_alloc_host(struct nlm_lookup_host_info *ni, return host; } /* * Common host lookup routine for server & client */ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni) { struct hlist_head *chain; struct hlist_node *pos; struct nlm_host *host; struct nsm_handle *nsm = NULL; mutex_lock(&nlm_host_mutex); if (time_after_eq(jiffies, next_gc)) nlm_gc_hosts(); /* We may keep several nlm_host objects for a peer, because each * nlm_host is identified by * (address, protocol, version, server/client) * We could probably simplify this a little by putting all those * different NLM rpc_clients into one single nlm_host object. * This would allow us to have one nlm_host per address. */ chain = &nlm_server_hosts[nlm_hash_address(ni->sap)]; hlist_for_each_entry(host, pos, chain, h_hash) { if (!rpc_cmp_addr(nlm_addr(host), ni->sap)) continue; /* See if we have an NSM handle for this client */ if (!nsm) nsm = host->h_nsmhandle; if (host->h_proto != ni->protocol) continue; if (host->h_version != ni->version) continue; if (host->h_server != ni->server) continue; if (ni->server && ni->src_len != 0 && !rpc_cmp_addr(nlm_srcaddr(host), ni->src_sap)) continue; /* Move to head of hash chain. */ hlist_del(&host->h_hash); hlist_add_head(&host->h_hash, chain); nlm_get_host(host); dprintk("lockd: nlm_lookup_host found host %s (%s)\n", host->h_name, host->h_addrbuf); goto out; } host = nlm_alloc_host(ni, nsm); if (unlikely(host == NULL)) goto out; memcpy(nlm_srcaddr(host), ni->src_sap, ni->src_len); host->h_srcaddrlen = ni->src_len; hlist_add_head(&host->h_hash, chain); nrhosts++; dprintk("lockd: nlm_lookup_host created host %s\n", host->h_name); out: mutex_unlock(&nlm_host_mutex); return host; } /* * Destroy an nlm_host and free associated resources * Loading Loading
fs/lockd/host.c +0 −69 Original line number Diff line number Diff line Loading @@ -162,75 +162,6 @@ static struct nlm_host *nlm_alloc_host(struct nlm_lookup_host_info *ni, return host; } /* * Common host lookup routine for server & client */ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni) { struct hlist_head *chain; struct hlist_node *pos; struct nlm_host *host; struct nsm_handle *nsm = NULL; mutex_lock(&nlm_host_mutex); if (time_after_eq(jiffies, next_gc)) nlm_gc_hosts(); /* We may keep several nlm_host objects for a peer, because each * nlm_host is identified by * (address, protocol, version, server/client) * We could probably simplify this a little by putting all those * different NLM rpc_clients into one single nlm_host object. * This would allow us to have one nlm_host per address. */ chain = &nlm_server_hosts[nlm_hash_address(ni->sap)]; hlist_for_each_entry(host, pos, chain, h_hash) { if (!rpc_cmp_addr(nlm_addr(host), ni->sap)) continue; /* See if we have an NSM handle for this client */ if (!nsm) nsm = host->h_nsmhandle; if (host->h_proto != ni->protocol) continue; if (host->h_version != ni->version) continue; if (host->h_server != ni->server) continue; if (ni->server && ni->src_len != 0 && !rpc_cmp_addr(nlm_srcaddr(host), ni->src_sap)) continue; /* Move to head of hash chain. */ hlist_del(&host->h_hash); hlist_add_head(&host->h_hash, chain); nlm_get_host(host); dprintk("lockd: nlm_lookup_host found host %s (%s)\n", host->h_name, host->h_addrbuf); goto out; } host = nlm_alloc_host(ni, nsm); if (unlikely(host == NULL)) goto out; memcpy(nlm_srcaddr(host), ni->src_sap, ni->src_len); host->h_srcaddrlen = ni->src_len; hlist_add_head(&host->h_hash, chain); nrhosts++; dprintk("lockd: nlm_lookup_host created host %s\n", host->h_name); out: mutex_unlock(&nlm_host_mutex); return host; } /* * Destroy an nlm_host and free associated resources * Loading