nilfs2: allow nilfs_clear_inode to clear metadata file inodes
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Fri, 20 Aug 2010 14:40:54 +0000 (23:40 +0900)
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Sat, 23 Oct 2010 00:24:37 +0000 (09:24 +0900)
Allows clear inode function (nilfs_clear_inode) to handle metadata
files that uses bitmap-based object alloctor.  DAT and ifile
correspond to this.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
fs/nilfs2/inode.c

index 3efef0ecfa2464c868c8d3af4b1c404300e273a2..5485dd12da643525ebab8822dc9860520c7dd850 100644 (file)
@@ -674,6 +674,7 @@ void nilfs_truncate(struct inode *inode)
 static void nilfs_clear_inode(struct inode *inode)
 {
        struct nilfs_inode_info *ii = NILFS_I(inode);
+       struct nilfs_mdt_info *mdi = NILFS_MDT(inode);
 
        /*
         * Free resources allocated in nilfs_read_inode(), here.
@@ -682,6 +683,9 @@ static void nilfs_clear_inode(struct inode *inode)
        brelse(ii->i_bh);
        ii->i_bh = NULL;
 
+       if (mdi && mdi->mi_palloc_cache)
+               nilfs_palloc_destroy_cache(inode);
+
        if (test_bit(NILFS_I_BMAP, &ii->i_state))
                nilfs_bmap_clear(ii->i_bmap);