nilfs2: do not allocate nilfs_mdt_info structure to gc-inodes
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Sun, 5 Sep 2010 01:14:43 +0000 (10:14 +0900)
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Sat, 23 Oct 2010 00:24:37 +0000 (09:24 +0900)
GC-inode now doesn't need the nilfs_mdt_info structure and there is no
reason that it is a sort of metadata files.

This stops the allocation and makes them not dependent on metadata
file routines.

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

index 34f8f84a22e37d1afadb57770dccd8590366084d..33ad25ddd5c442a7875e8eca9b078b363e10d9ce 100644 (file)
@@ -168,7 +168,7 @@ int nilfs_gccache_wait_and_mark_dirty(struct buffer_head *bh)
                }
                nilfs_btnode_mark_dirty(bh);
        } else {
-               nilfs_mdt_mark_buffer_dirty(bh);
+               nilfs_mark_buffer_dirty(bh);
        }
        return 0;
 }
@@ -177,24 +177,24 @@ int nilfs_init_gcinode(struct inode *inode)
 {
        struct nilfs_inode_info *ii = NILFS_I(inode);
        struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
-       int ret;
 
-       ret = nilfs_mdt_init(inode, nilfs, GFP_NOFS, 0);
-       if (!ret) {
-               inode->i_mapping->a_ops = &def_gcinode_aops;
+       inode->i_mode = S_IFREG;
+       mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS);
+       inode->i_mapping->a_ops = &def_gcinode_aops;
+       inode->i_mapping->backing_dev_info = inode->i_sb->s_bdi;
 
-               ii->i_flags = 0;
-               nilfs_bmap_init_gc(ii->i_bmap);
+       ii->i_flags = 0;
+       nilfs_bmap_init_gc(ii->i_bmap);
 
-               /*
-                * Add the inode to GC inode list. Garbage Collection
-                * is serialized and no two processes manipulate the
-                * list simultaneously.
-                */
-               igrab(inode);
-               list_add(&NILFS_I(inode)->i_dirty, &nilfs->ns_gc_inodes);
-       }
-       return ret;
+       /*
+        * Add the inode to GC inode list. Garbage Collection
+        * is serialized and no two processes manipulate the
+        * list simultaneously.
+        */
+       igrab(inode);
+       list_add(&NILFS_I(inode)->i_dirty, &nilfs->ns_gc_inodes);
+
+       return 0;
 }
 
 /**