.. | .. |
---|
27 | 27 | #include <linux/vmalloc.h> |
---|
28 | 28 | |
---|
29 | 29 | #include <linux/coda.h> |
---|
30 | | -#include <linux/coda_psdev.h> |
---|
| 30 | +#include "coda_psdev.h" |
---|
31 | 31 | #include "coda_linux.h" |
---|
32 | 32 | #include "coda_cache.h" |
---|
33 | 33 | |
---|
.. | .. |
---|
54 | 54 | return &ei->vfs_inode; |
---|
55 | 55 | } |
---|
56 | 56 | |
---|
57 | | -static void coda_i_callback(struct rcu_head *head) |
---|
| 57 | +static void coda_free_inode(struct inode *inode) |
---|
58 | 58 | { |
---|
59 | | - struct inode *inode = container_of(head, struct inode, i_rcu); |
---|
60 | 59 | kmem_cache_free(coda_inode_cachep, ITOC(inode)); |
---|
61 | | -} |
---|
62 | | - |
---|
63 | | -static void coda_destroy_inode(struct inode *inode) |
---|
64 | | -{ |
---|
65 | | - call_rcu(&inode->i_rcu, coda_i_callback); |
---|
66 | 60 | } |
---|
67 | 61 | |
---|
68 | 62 | static void init_once(void *foo) |
---|
.. | .. |
---|
104 | 98 | static const struct super_operations coda_super_operations = |
---|
105 | 99 | { |
---|
106 | 100 | .alloc_inode = coda_alloc_inode, |
---|
107 | | - .destroy_inode = coda_destroy_inode, |
---|
| 101 | + .free_inode = coda_free_inode, |
---|
108 | 102 | .evict_inode = coda_evict_inode, |
---|
109 | 103 | .put_super = coda_put_super, |
---|
110 | 104 | .statfs = coda_statfs, |
---|
.. | .. |
---|
194 | 188 | sb->s_magic = CODA_SUPER_MAGIC; |
---|
195 | 189 | sb->s_op = &coda_super_operations; |
---|
196 | 190 | sb->s_d_op = &coda_dentry_operations; |
---|
| 191 | + sb->s_time_gran = 1; |
---|
| 192 | + sb->s_time_min = S64_MIN; |
---|
| 193 | + sb->s_time_max = S64_MAX; |
---|
197 | 194 | |
---|
198 | 195 | error = super_setup_bdi(sb); |
---|
199 | 196 | if (error) |
---|
.. | .. |
---|
242 | 239 | vcp->vc_sb = NULL; |
---|
243 | 240 | sb->s_fs_info = NULL; |
---|
244 | 241 | mutex_unlock(&vcp->vc_mutex); |
---|
| 242 | + mutex_destroy(&vcp->vc_mutex); |
---|
245 | 243 | |
---|
246 | 244 | pr_info("Bye bye.\n"); |
---|
247 | 245 | } |
---|