Skip to content

Commit

Permalink
nilfs2: cleanup nilfs_clear_inode
Browse files Browse the repository at this point in the history
This will remove the following unnecessary locks and cleanup code in
nilfs_clear_inode():

- unnecessary protection using nilfs_transaction_begin() and
  nilfs_transaction_end().

- cleanup code of i_dirty list field which is never chained
  when this function is called.

- spinlock used when releasing i_bh field.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Ryusuke Konishi authored and Linus Torvalds committed Apr 7, 2009
1 parent 3358b4a commit a2e7d2d
Showing 1 changed file with 1 addition and 10 deletions.
11 changes: 1 addition & 10 deletions fs/nilfs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,6 @@ static inline void nilfs_destroy_inode_cache(void)
static void nilfs_clear_inode(struct inode *inode)
{
struct nilfs_inode_info *ii = NILFS_I(inode);
struct nilfs_transaction_info ti;
struct nilfs_sb_info *sbi = NILFS_SB(inode->i_sb);

#ifdef CONFIG_NILFS_POSIX_ACL
if (ii->i_acl && ii->i_acl != NILFS_ACL_NOT_CACHED) {
Expand All @@ -200,21 +198,14 @@ static void nilfs_clear_inode(struct inode *inode)
/*
* Free resources allocated in nilfs_read_inode(), here.
*/
nilfs_transaction_begin(inode->i_sb, &ti, 0);

spin_lock(&sbi->s_inode_lock);
if (!list_empty(&ii->i_dirty))
list_del_init(&ii->i_dirty);
BUG_ON(!list_empty(&ii->i_dirty));
brelse(ii->i_bh);
ii->i_bh = NULL;
spin_unlock(&sbi->s_inode_lock);

if (test_bit(NILFS_I_BMAP, &ii->i_state))
nilfs_bmap_clear(ii->i_bmap);

nilfs_btnode_cache_clear(&ii->i_btnode_cache);

nilfs_transaction_end(inode->i_sb, 0);
}

/**
Expand Down

0 comments on commit a2e7d2d

Please sign in to comment.