Skip to content

Commit

Permalink
ntfs: switch to ->free_inode()
Browse files Browse the repository at this point in the history
move the synchronous stuff from ->destroy_inode() to ->evict_inode(),
turn the RCU-delayed part into ->free_inode()

Signed-off-by: Al Viro <[email protected]>
  • Loading branch information
Al Viro committed May 2, 2019
1 parent f614ee1 commit a2b757f
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 15 deletions.
17 changes: 4 additions & 13 deletions fs/ntfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}

Expand Down
2 changes: 1 addition & 1 deletion fs/ntfs/inode.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion fs/ntfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down

0 comments on commit a2b757f

Please sign in to comment.