[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.
diff --git a/fs/logfs/gc.c b/fs/logfs/gc.c
index b3656c4..92949f9 100644
--- a/fs/logfs/gc.c
+++ b/fs/logfs/gc.c
@@ -469,7 +469,7 @@
 
 		/* 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 @@
 	 */
 	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);
 }