From c6d3830140f1d56b07d8ab56a6e14ca3c492a39a Mon Sep 17 00:00:00 2001 From: Joern Engel Date: Thu, 4 Mar 2010 21:36:19 +0100 Subject: [LogFS] Only write journal if dirty This prevents unnecessary journal writes. More importantly it prevents an oops due to a journal write on failed mount. --- fs/logfs/gc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'fs/logfs/gc.c') diff --git a/fs/logfs/gc.c b/fs/logfs/gc.c index b3656c44190e..92949f95a901 100644 --- a/fs/logfs/gc.c +++ b/fs/logfs/gc.c @@ -469,7 +469,7 @@ static void __logfs_gc_pass(struct super_block *sb, int target) /* Sync in-memory state with on-medium state in case they * diverged */ - logfs_write_anchor(super->s_master_inode); + logfs_write_anchor(sb); round += logfs_scan_some(sb); if (no_free_segments(sb) >= target) goto write_alias; @@ -613,8 +613,8 @@ void logfs_gc_pass(struct super_block *sb) */ if (super->s_dirty_used_bytes + super->s_dirty_free_bytes + LOGFS_MAX_OBJECTSIZE >= super->s_free_bytes) - logfs_write_anchor(super->s_master_inode); - __logfs_gc_pass(sb, logfs_super(sb)->s_total_levels); + logfs_write_anchor(sb); + __logfs_gc_pass(sb, super->s_total_levels); logfs_wl_pass(sb); logfs_journal_wl_pass(sb); } -- cgit v1.2.3