diff options
Diffstat (limited to 'net/sunrpc/rpc_pipe.c')
-rw-r--r-- | net/sunrpc/rpc_pipe.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index a0dc1a86fcea..2899fe27f880 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
@@ -162,11 +162,19 @@ rpc_alloc_inode(struct super_block *sb) | |||
162 | } | 162 | } |
163 | 163 | ||
164 | static void | 164 | static void |
165 | rpc_destroy_inode(struct inode *inode) | 165 | rpc_i_callback(struct rcu_head *head) |
166 | { | 166 | { |
167 | struct inode *inode = container_of(head, struct inode, i_rcu); | ||
168 | INIT_LIST_HEAD(&inode->i_dentry); | ||
167 | kmem_cache_free(rpc_inode_cachep, RPC_I(inode)); | 169 | kmem_cache_free(rpc_inode_cachep, RPC_I(inode)); |
168 | } | 170 | } |
169 | 171 | ||
172 | static void | ||
173 | rpc_destroy_inode(struct inode *inode) | ||
174 | { | ||
175 | call_rcu(&inode->i_rcu, rpc_i_callback); | ||
176 | } | ||
177 | |||
170 | static int | 178 | static int |
171 | rpc_pipe_open(struct inode *inode, struct file *filp) | 179 | rpc_pipe_open(struct inode *inode, struct file *filp) |
172 | { | 180 | { |