diff options
author | David Howells <dhowells@redhat.com> | 2009-04-03 11:42:38 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2009-04-03 11:42:38 -0400 |
commit | 955d00917f0c094e0f2fb88df967e980ab66b8ca (patch) | |
tree | c6109684239fd45462e494fb4f26aa8e2e651922 /fs/fscache/main.c | |
parent | 4c515dd47ab41be3f89e757d441661795470b376 (diff) |
FS-Cache: Provide a slab for cookie allocation
Provide a slab from which can be allocated the FS-Cache cookies that will be
presented to the netfs.
Also provide a slab constructor and a function to recursively discard a cookie
and its ancestor chain.
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Steve Dickson <steved@redhat.com>
Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Tested-by: Daire Byrne <Daire.Byrne@framestore.com>
Diffstat (limited to 'fs/fscache/main.c')
-rw-r--r-- | fs/fscache/main.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/fs/fscache/main.c b/fs/fscache/main.c index c2f3e637725d..48b79d2deac1 100644 --- a/fs/fscache/main.c +++ b/fs/fscache/main.c | |||
@@ -56,6 +56,18 @@ static int __init fscache_init(void) | |||
56 | if (ret < 0) | 56 | if (ret < 0) |
57 | goto error_proc; | 57 | goto error_proc; |
58 | 58 | ||
59 | fscache_cookie_jar = kmem_cache_create("fscache_cookie_jar", | ||
60 | sizeof(struct fscache_cookie), | ||
61 | 0, | ||
62 | 0, | ||
63 | fscache_cookie_init_once); | ||
64 | if (!fscache_cookie_jar) { | ||
65 | printk(KERN_NOTICE | ||
66 | "FS-Cache: Failed to allocate a cookie jar\n"); | ||
67 | ret = -ENOMEM; | ||
68 | goto error_cookie_jar; | ||
69 | } | ||
70 | |||
59 | fscache_root = kobject_create_and_add("fscache", kernel_kobj); | 71 | fscache_root = kobject_create_and_add("fscache", kernel_kobj); |
60 | if (!fscache_root) | 72 | if (!fscache_root) |
61 | goto error_kobj; | 73 | goto error_kobj; |
@@ -64,6 +76,8 @@ static int __init fscache_init(void) | |||
64 | return 0; | 76 | return 0; |
65 | 77 | ||
66 | error_kobj: | 78 | error_kobj: |
79 | kmem_cache_destroy(fscache_cookie_jar); | ||
80 | error_cookie_jar: | ||
67 | fscache_proc_cleanup(); | 81 | fscache_proc_cleanup(); |
68 | error_proc: | 82 | error_proc: |
69 | slow_work_unregister_user(); | 83 | slow_work_unregister_user(); |
@@ -81,6 +95,7 @@ static void __exit fscache_exit(void) | |||
81 | _enter(""); | 95 | _enter(""); |
82 | 96 | ||
83 | kobject_put(fscache_root); | 97 | kobject_put(fscache_root); |
98 | kmem_cache_destroy(fscache_cookie_jar); | ||
84 | fscache_proc_cleanup(); | 99 | fscache_proc_cleanup(); |
85 | slow_work_unregister_user(); | 100 | slow_work_unregister_user(); |
86 | printk(KERN_NOTICE "FS-Cache: Unloaded\n"); | 101 | printk(KERN_NOTICE "FS-Cache: Unloaded\n"); |