diff options
Diffstat (limited to 'fs/ntfs')
| -rw-r--r-- | fs/ntfs/inode.c | 17 | ||||
| -rw-r--r-- | fs/ntfs/inode.h | 2 | ||||
| -rw-r--r-- | fs/ntfs/super.c | 2 | 
3 files changed, 6 insertions, 15 deletions
| diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c index bd3221cbdd95..fb1a2b49a5da 100644 --- a/fs/ntfs/inode.c +++ b/fs/ntfs/inode.c @@ -332,23 +332,11 @@ struct inode *ntfs_alloc_big_inode(struct super_block *sb)  	return NULL;  } -static void ntfs_i_callback(struct rcu_head *head) +void ntfs_free_big_inode(struct inode *inode)  { -	struct inode *inode = container_of(head, struct inode, i_rcu);  	kmem_cache_free(ntfs_big_inode_cache, NTFS_I(inode));  } -void ntfs_destroy_big_inode(struct inode *inode) -{ -	ntfs_inode *ni = NTFS_I(inode); - -	ntfs_debug("Entering."); -	BUG_ON(ni->page); -	if (!atomic_dec_and_test(&ni->count)) -		BUG(); -	call_rcu(&inode->i_rcu, ntfs_i_callback); -} -  static inline ntfs_inode *ntfs_alloc_extent_inode(void)  {  	ntfs_inode *ni; @@ -2287,6 +2275,9 @@ void ntfs_evict_big_inode(struct inode *vi)  			ni->ext.base_ntfs_ino = NULL;  		}  	} +	BUG_ON(ni->page); +	if (!atomic_dec_and_test(&ni->count)) +		BUG();  	return;  } diff --git a/fs/ntfs/inode.h b/fs/ntfs/inode.h index b3c3469de6cb..58c8fd2948d3 100644 --- a/fs/ntfs/inode.h +++ b/fs/ntfs/inode.h @@ -278,7 +278,7 @@ extern struct inode *ntfs_index_iget(struct inode *base_vi, ntfschar *name,  		u32 name_len);  extern struct inode *ntfs_alloc_big_inode(struct super_block *sb); -extern void ntfs_destroy_big_inode(struct inode *inode); +extern void ntfs_free_big_inode(struct inode *inode);  extern void ntfs_evict_big_inode(struct inode *vi);  extern void __ntfs_init_inode(struct super_block *sb, ntfs_inode *ni); diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index bb7159f697f2..887ea8b3b000 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c @@ -2676,7 +2676,7 @@ static int ntfs_write_inode(struct inode *vi, struct writeback_control *wbc)   */  static const struct super_operations ntfs_sops = {  	.alloc_inode	= ntfs_alloc_big_inode,	  /* VFS: Allocate new inode. */ -	.destroy_inode	= ntfs_destroy_big_inode, /* VFS: Deallocate inode. */ +	.free_inode	= ntfs_free_big_inode, /* VFS: Deallocate inode. */  #ifdef NTFS_RW  	.write_inode	= ntfs_write_inode,	/* VFS: Write dirty inode to  						   disk. */ |