]> err.no Git - linux-2.6/blobdiff - fs/gfs2/ops_fstype.c
[GFS2] Clean up ordered write code
[linux-2.6] / fs / gfs2 / ops_fstype.c
index c1c6672ebb8377c537abaa3c48d34da7c6365d79..35f3dfa9bfb178950f649017e578247b6e695dc5 100644 (file)
@@ -35,6 +35,7 @@
 #include "super.h"
 #include "sys.h"
 #include "util.h"
+#include "log.h"
 
 #define DO 0
 #define UNDO 1
@@ -81,6 +82,7 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb)
        INIT_LIST_HEAD(&sdp->sd_log_le_revoke);
        INIT_LIST_HEAD(&sdp->sd_log_le_rg);
        INIT_LIST_HEAD(&sdp->sd_log_le_databuf);
+       INIT_LIST_HEAD(&sdp->sd_log_le_ordered);
 
        mutex_init(&sdp->sd_log_reserve_mutex);
        INIT_LIST_HEAD(&sdp->sd_ail1_list);
@@ -886,7 +888,10 @@ error:
 
 static void gfs2_kill_sb(struct super_block *sb)
 {
-       gfs2_delete_debugfs_file(sb->s_fs_info);
+       if (sb->s_fs_info) {
+               gfs2_delete_debugfs_file(sb->s_fs_info);
+               gfs2_meta_syncfs(sb->s_fs_info);
+       }
        kill_block_super(sb);
 }