ext3: add support for extent_map library
[linux-2.6-block.git] / fs / ext3 / super.c
index b70d90e08a3c030855ba40731fc3578d2d58db2f..6e4dac04e4b2a6a4885ca6767107bcdc7191ef88 100644 (file)
@@ -475,6 +475,7 @@ static void ext3_destroy_inode(struct inode *inode)
                                false);
                dump_stack();
        }
+       remove_extent_mappings(&EXT3_I(inode)->extent_tree, 0, (u64) -1);
        kmem_cache_free(ext3_inode_cachep, EXT3_I(inode));
 }
 
@@ -487,6 +488,7 @@ static void init_once(void *foo)
        init_rwsem(&ei->xattr_sem);
 #endif
        mutex_init(&ei->truncate_mutex);
+       extent_map_tree_init(&ei->extent_tree);
        inode_init_once(&ei->vfs_inode);
 }
 
@@ -2428,12 +2430,13 @@ static void ext3_write_super (struct super_block * sb)
 
 static int ext3_sync_fs(struct super_block *sb, int wait)
 {
-       sb->s_dirt = 0;
-       if (wait)
-               ext3_force_commit(sb);
-       else
-               journal_start_commit(EXT3_SB(sb)->s_journal, NULL);
+       tid_t target;
 
+       sb->s_dirt = 0;
+       if (journal_start_commit(EXT3_SB(sb)->s_journal, &target)) {
+               if (wait)
+                       log_wait_commit(EXT3_SB(sb)->s_journal, target);
+       }
        return 0;
 }