diff options
author | Wang Chen <wangchen@cn.fujitsu.com> | 2008-02-28 17:00:59 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-28 17:00:59 -0500 |
commit | 2ce8f047d5f3c0d782838bd2ecb6e4c440268e6d (patch) | |
tree | 8c8f667f23e194e31dd9b82acaf5e3c0aa4238f1 /net/sunrpc/cache.c | |
parent | 64758bd7927be1f755e7a08edb2253d37e4b2445 (diff) |
[SUNRPC]: Use proc_create() to setup ->proc_fops first
Use proc_create() to make sure that ->proc_fops be setup before gluing
PDE to main tree.
Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sunrpc/cache.c')
-rw-r--r-- | net/sunrpc/cache.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 636c8e04e0be..b5f2786251b9 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c | |||
@@ -316,31 +316,29 @@ static int create_cache_proc_entries(struct cache_detail *cd) | |||
316 | cd->proc_ent->owner = cd->owner; | 316 | cd->proc_ent->owner = cd->owner; |
317 | cd->channel_ent = cd->content_ent = NULL; | 317 | cd->channel_ent = cd->content_ent = NULL; |
318 | 318 | ||
319 | p = create_proc_entry("flush", S_IFREG|S_IRUSR|S_IWUSR, cd->proc_ent); | 319 | p = proc_create("flush", S_IFREG|S_IRUSR|S_IWUSR, |
320 | cd->proc_ent, &cache_flush_operations); | ||
320 | cd->flush_ent = p; | 321 | cd->flush_ent = p; |
321 | if (p == NULL) | 322 | if (p == NULL) |
322 | goto out_nomem; | 323 | goto out_nomem; |
323 | p->proc_fops = &cache_flush_operations; | ||
324 | p->owner = cd->owner; | 324 | p->owner = cd->owner; |
325 | p->data = cd; | 325 | p->data = cd; |
326 | 326 | ||
327 | if (cd->cache_request || cd->cache_parse) { | 327 | if (cd->cache_request || cd->cache_parse) { |
328 | p = create_proc_entry("channel", S_IFREG|S_IRUSR|S_IWUSR, | 328 | p = proc_create("channel", S_IFREG|S_IRUSR|S_IWUSR, |
329 | cd->proc_ent); | 329 | cd->proc_ent, &cache_file_operations); |
330 | cd->channel_ent = p; | 330 | cd->channel_ent = p; |
331 | if (p == NULL) | 331 | if (p == NULL) |
332 | goto out_nomem; | 332 | goto out_nomem; |
333 | p->proc_fops = &cache_file_operations; | ||
334 | p->owner = cd->owner; | 333 | p->owner = cd->owner; |
335 | p->data = cd; | 334 | p->data = cd; |
336 | } | 335 | } |
337 | if (cd->cache_show) { | 336 | if (cd->cache_show) { |
338 | p = create_proc_entry("content", S_IFREG|S_IRUSR|S_IWUSR, | 337 | p = proc_create("content", S_IFREG|S_IRUSR|S_IWUSR, |
339 | cd->proc_ent); | 338 | cd->proc_ent, &content_file_operations); |
340 | cd->content_ent = p; | 339 | cd->content_ent = p; |
341 | if (p == NULL) | 340 | if (p == NULL) |
342 | goto out_nomem; | 341 | goto out_nomem; |
343 | p->proc_fops = &content_file_operations; | ||
344 | p->owner = cd->owner; | 342 | p->owner = cd->owner; |
345 | p->data = cd; | 343 | p->data = cd; |
346 | } | 344 | } |