aboutsummaryrefslogtreecommitdiffstats
path: root/fs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/inode.c')
-rw-r--r--fs/inode.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/inode.c b/fs/inode.c
index 4fda5ee85518..24d02907e196 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -191,6 +191,7 @@ int inode_init_always(struct super_block *sb, struct inode *inode)
191 } 191 }
192 inode->i_private = NULL; 192 inode->i_private = NULL;
193 inode->i_mapping = mapping; 193 inode->i_mapping = mapping;
194 INIT_LIST_HEAD(&inode->i_dentry); /* buggered by rcu freeing */
194#ifdef CONFIG_FS_POSIX_ACL 195#ifdef CONFIG_FS_POSIX_ACL
195 inode->i_acl = inode->i_default_acl = ACL_NOT_CACHED; 196 inode->i_acl = inode->i_default_acl = ACL_NOT_CACHED;
196#endif 197#endif
@@ -254,7 +255,6 @@ EXPORT_SYMBOL(__destroy_inode);
254static void i_callback(struct rcu_head *head) 255static void i_callback(struct rcu_head *head)
255{ 256{
256 struct inode *inode = container_of(head, struct inode, i_rcu); 257 struct inode *inode = container_of(head, struct inode, i_rcu);
257 INIT_LIST_HEAD(&inode->i_dentry);
258 kmem_cache_free(inode_cachep, inode); 258 kmem_cache_free(inode_cachep, inode);
259} 259}
260 260
@@ -290,7 +290,6 @@ void inode_init_once(struct inode *inode)
290{ 290{
291 memset(inode, 0, sizeof(*inode)); 291 memset(inode, 0, sizeof(*inode));
292 INIT_HLIST_NODE(&inode->i_hash); 292 INIT_HLIST_NODE(&inode->i_hash);
293 INIT_LIST_HEAD(&inode->i_dentry);
294 INIT_LIST_HEAD(&inode->i_devices); 293 INIT_LIST_HEAD(&inode->i_devices);
295 INIT_LIST_HEAD(&inode->i_wb_list); 294 INIT_LIST_HEAD(&inode->i_wb_list);
296 INIT_LIST_HEAD(&inode->i_lru); 295 INIT_LIST_HEAD(&inode->i_lru);