nilfs2: cleanup nilfs_clear_inode
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Tue, 7 Apr 2009 02:01:44 +0000 (19:01 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Apr 2009 15:31:17 +0000 (08:31 -0700)
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>
fs/nilfs2/super.c

index 10e82c00aedcea880ad07117a094b8cfbf5c119f..268b563d215ae33fe2fb4e0fbbcfd67fd1cdb622 100644 (file)
@@ -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);
 }
 
 /**