Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 359733
b: refs/heads/master
c: 483479c
h: refs/heads/master
i:
  359731: 6f36272
v: v3
  • Loading branch information
Stanislav Kinsbursky authored and J. Bruce Fields committed Feb 15, 2013
1 parent fe10f36 commit 0398fe3
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 36 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e56a316214d0f1e2446fa7a717309f9414564d9d
refs/heads/master: 483479c26a65e5f0cc95e9324f313bc95c7dc6fd
60 changes: 25 additions & 35 deletions trunk/fs/nfs/dns_resolve.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,48 +353,39 @@ ssize_t nfs_dns_resolve_name(struct net *net, char *name,
}
EXPORT_SYMBOL_GPL(nfs_dns_resolve_name);

static struct cache_detail nfs_dns_resolve_template = {
.owner = THIS_MODULE,
.hash_size = NFS_DNS_HASHTBL_SIZE,
.name = "dns_resolve",
.cache_put = nfs_dns_ent_put,
.cache_upcall = nfs_dns_upcall,
.cache_parse = nfs_dns_parse,
.cache_show = nfs_dns_show,
.match = nfs_dns_match,
.init = nfs_dns_ent_init,
.update = nfs_dns_ent_update,
.alloc = nfs_dns_ent_alloc,
};


int nfs_dns_resolver_cache_init(struct net *net)
{
int err = -ENOMEM;
int err;
struct nfs_net *nn = net_generic(net, nfs_net_id);
struct cache_detail *cd;
struct cache_head **tbl;

cd = kzalloc(sizeof(struct cache_detail), GFP_KERNEL);
if (cd == NULL)
goto err_cd;

tbl = kzalloc(NFS_DNS_HASHTBL_SIZE * sizeof(struct cache_head *),
GFP_KERNEL);
if (tbl == NULL)
goto err_tbl;

cd->owner = THIS_MODULE,
cd->hash_size = NFS_DNS_HASHTBL_SIZE,
cd->hash_table = tbl,
cd->name = "dns_resolve",
cd->cache_put = nfs_dns_ent_put,
cd->cache_upcall = nfs_dns_upcall,
cd->cache_parse = nfs_dns_parse,
cd->cache_show = nfs_dns_show,
cd->match = nfs_dns_match,
cd->init = nfs_dns_ent_init,
cd->update = nfs_dns_ent_update,
cd->alloc = nfs_dns_ent_alloc,

nfs_cache_init(cd);
err = nfs_cache_register_net(net, cd);
nn->nfs_dns_resolve = cache_create_net(&nfs_dns_resolve_template, net);
if (IS_ERR(nn->nfs_dns_resolve))
return PTR_ERR(nn->nfs_dns_resolve);

nfs_cache_init(nn->nfs_dns_resolve);
err = nfs_cache_register_net(net, nn->nfs_dns_resolve);
if (err)
goto err_reg;
nn->nfs_dns_resolve = cd;
return 0;

err_reg:
nfs_cache_destroy(cd);
kfree(cd->hash_table);
err_tbl:
kfree(cd);
err_cd:
nfs_cache_destroy(nn->nfs_dns_resolve);
cache_destroy_net(nn->nfs_dns_resolve, net);
return err;
}

Expand All @@ -405,8 +396,7 @@ void nfs_dns_resolver_cache_destroy(struct net *net)

nfs_cache_unregister_net(net, cd);
nfs_cache_destroy(cd);
kfree(cd->hash_table);
kfree(cd);
cache_destroy_net(nn->nfs_dns_resolve, net);
}

static int rpc_pipefs_event(struct notifier_block *nb, unsigned long event,
Expand Down

0 comments on commit 0398fe3

Please sign in to comment.