diff -ruNp 230-refrigerator-to-try_to_freeze.patch-old/drivers/media/video/msp3400.c 230-refrigerator-to-try_to_freeze.patch-new/drivers/media/video/msp3400.c
--- 230-refrigerator-to-try_to_freeze.patch-old/drivers/media/video/msp3400.c	2005-07-30 15:42:37.000000000 +1000
+++ 230-refrigerator-to-try_to_freeze.patch-new/drivers/media/video/msp3400.c	2005-07-30 20:27:58.000000000 +1000
@@ -741,11 +741,9 @@ static int msp34xx_sleep(struct msp3400c
 			schedule_timeout(msecs_to_jiffies(timeout));
 		}
 	}
-	if (current->flags & PF_FREEZE) {
-		refrigerator ();
-	}
 
 	remove_wait_queue(&msp->wq, &wait);
+	try_to_freeze();
 	return msp->restart;
 }
 
diff -ruNp 230-refrigerator-to-try_to_freeze.patch-old/fs/jbd/journal.c 230-refrigerator-to-try_to_freeze.patch-new/fs/jbd/journal.c
--- 230-refrigerator-to-try_to_freeze.patch-old/fs/jbd/journal.c	2005-07-30 15:42:43.000000000 +1000
+++ 230-refrigerator-to-try_to_freeze.patch-new/fs/jbd/journal.c	2005-07-30 20:27:58.000000000 +1000
@@ -126,6 +126,8 @@ int kjournald(void *arg)
 	journal_t *journal = (journal_t *) arg;
 	transaction_t *transaction;
 	struct timer_list timer;
+	DEFINE_WAIT(wait);
+	int should_sleep = 1;
 
 	current_journal = journal;
 
@@ -167,39 +169,26 @@ loop:
 	}
 
 	wake_up(&journal->j_wait_done_commit);
-	if (freezing(current)) {
-		/*
-		 * The simpler the better. Flushing journal isn't a
-		 * good idea, because that depends on threads that may
-		 * be already stopped.
-		 */
-		jbd_debug(1, "Now suspending kjournald\n");
+
+	/*
+	 * We assume on resume that commits are already there,
+	 * so we don't sleep
+	 */
+	prepare_to_wait(&journal->j_wait_commit, &wait,
+			TASK_INTERRUPTIBLE);
+	if (journal->j_commit_sequence != journal->j_commit_request)
+		should_sleep = 0;
+	transaction = journal->j_running_transaction;
+	if (transaction && time_after_eq(jiffies,
+					transaction->t_expires))
+		should_sleep = 0;
+	if (should_sleep) {
 		spin_unlock(&journal->j_state_lock);
-		refrigerator();
+		try_to_freeze();
+		schedule();
 		spin_lock(&journal->j_state_lock);
-	} else {
-		/*
-		 * We assume on resume that commits are already there,
-		 * so we don't sleep
-		 */
-		DEFINE_WAIT(wait);
-		int should_sleep = 1;
-
-		prepare_to_wait(&journal->j_wait_commit, &wait,
-				TASK_INTERRUPTIBLE);
-		if (journal->j_commit_sequence != journal->j_commit_request)
-			should_sleep = 0;
-		transaction = journal->j_running_transaction;
-		if (transaction && time_after_eq(jiffies,
-						transaction->t_expires))
-			should_sleep = 0;
-		if (should_sleep) {
-			spin_unlock(&journal->j_state_lock);
-			schedule();
-			spin_lock(&journal->j_state_lock);
-		}
-		finish_wait(&journal->j_wait_commit, &wait);
 	}
+	finish_wait(&journal->j_wait_commit, &wait);
 
 	jbd_debug(1, "kjournald wakes\n");
 

