diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2009-04-06 19:01:44 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-07 08:31:17 -0700 |
commit | a2e7d2df82cafb76f76809ddf6e2caa8afe4f75e (patch) | |
tree | ac16ef25c4d3e4eaf55090b57035d292ec5bc9fb | |
parent | 3358b4aaa84fd4c1cdd64391875e92cbb8afeb29 (diff) |
nilfs2: cleanup nilfs_clear_inode
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>
-rw-r--r-- | fs/nilfs2/super.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c index 10e82c00aed..268b563d215 100644 --- a/fs/nilfs2/super.c +++ b/fs/nilfs2/super.c @@ -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) { @@ -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); } /** |