Convert refrigerator() to try_to_freeze()
Subsystems (4)
PATCH 1/1 Convert refrigerator() to try_to_freeze()
Hi.
This patch removes the few remaining direct invocations of the refrigerator in 2.6.13-rc3. In drivers/media/video/msp3400.c, it also shifts the call to after the remove_wait_queue; this seems to be the more appropriate place.
Regards,
Nigel
Signed-off by: Nigel Cunningham <[email protected]>
drivers/media/video/msp3400.c | 4 +--- drivers/net/irda/stir4200.c | 2 +- fs/jbd/journal.c | 2 +- fs/jfs/jfs_logmgr.c | 2 +- fs/jfs/jfs_txnmgr.c | 4 ++-- fs/xfs/linux-2.6/xfs_buf.c | 2 +- 6 files changed, 7 insertions(+), 9 deletions(-)
drivers/media/video/msp3400.c +1 -3
@@ -741,11 +741,9 @@ static int msp34xx_sleep(struct msp3400cschedule_timeout (msecs_to_jiffies (timeout)); } } -if (current->flags &PF_FREEZE ) { -refrigerator (); - }remove_wait_queue (&msp->wq, &wait); +try_to_freeze ();return msp->restart; }
drivers/net/irda/stir4200.c +1 -1
@@ -771,7 +771,7 @@ static int stir_transmit_thread(void *arwrite_reg (stir,REG_CTRL1 ,CTRL1_TXPWD |CTRL1_RXPWD ); -refrigerator (); +try_to_freeze ();if (change_speed (stir, stir->speed))break ;
fs/jbd/journal.c +1 -1
@@ -175,7 +175,7 @@ loop:*/ jbd_debug (1 ,"Now suspending kjournald\n" );spin_unlock (&journal->j_state_lock); -refrigerator (); +try_to_freeze ();spin_lock (&journal->j_state_lock); }else {/*
fs/jfs/jfs_logmgr.c +1 -1
@@ -2361,7 +2361,7 @@ int jfsIOWait(void *arg) }if (freezing (current)) {spin_unlock_irq (&log_redrive_lock); -refrigerator (); +try_to_freeze (); }else {add_wait_queue (&jfs_IO_thread_wait, &wq);set_current_state (TASK_INTERRUPTIBLE );
fs/jfs/jfs_txnmgr.c +2 -2
@@ -2790,7 +2790,7 @@ int jfs_lazycommit(void *arg)if (freezing (current)) {LAZY_UNLOCK (flags); -refrigerator (); +try_to_freeze (); }else {DECLARE_WAITQUEUE (wq, current);
@@ -2989,7 +2989,7 @@ int jfs_sync(void *arg)if (freezing (current)) {TXN_UNLOCK (); -refrigerator (); +try_to_freeze (); }else {DECLARE_WAITQUEUE (wq, current);
fs/xfs/linux-2.6/xfs_buf.c +1 -1
@@ -1773,7 +1773,7 @@ xfsbufd( do { if (unlikely(freezing(current))) { xfsbufd_force_sleep = 1; - refrigerator(); + try_to_freeze(); } else { xfsbufd_force_sleep = 0; }
Signature · 5 lines
Evolution. Enumerate the requirements. Consider the interdependencies. Calculate the probabilities. Be amazed that people believe it happened.
Hi!
Quoted 10 lines
This patch removes the few remaining direct invocations of the refrigerator in 2.6.13-rc3. In
drivers/media/video/msp3400.c, it also shifts the call to after theremove_wait_queue; this seems to be the more appropriate place.diff -ruNp
230-refrigerator-to-try_to_freeze.patch-old/fs/jbd/journal.c230-refrigerator-to-try_to_freeze.patch-new/fs/jbd/journal.c
fs/jbd/journal.c loop: · line 181
Quoted 8 lines
fs/jbd/journal.c +1
-1@@ -175,7 +175,7 @@ loop:*/ jbd_debug (1 ,"Now suspending kjournald\n" );spin_unlock (&journal->j_state_lock); -refrigerator (); +try_to_freeze ();spin_lock (&journal->j_state_lock); }else {/*
They probably tested it before, why test again?
fs/jfs/jfs_logmgr.c int jfsIOWait(void *arg) · line 2362
Quoted 6 lines
diff -ruNp
230-refrigerator-to-try_to_freeze.patch-old/fs/jfs/jfs_logmgr.c230-refrigerator-to-try_to_freeze.patch-new/fs/jfs/jfs_logmgr.cfs/jfs/jfs_logmgr.c +0
-0@@ -2361,7 +2361,7 @@ int jfsIOWait(void *arg) }if (freezing (current)) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/jfs/jfs_logmgr.c int jfsIOWait(void *arg) · line 2367
Quoted 6 lines
fs/jfs/jfs_logmgr.c +1
-1spin_unlock_irq (&log_redrive_lock); -refrigerator (); +try_to_freeze (); }else {add_wait_queue (&jfs_IO_thread_wait, &wq);set_current_state (TASK_INTERRUPTIBLE );
See? You are needlessly testing condition twice.
Pavel
Signature · 1 line
teflon -- maybe it is a trademark, but it should not be.
Hi.
Quoted 30 lines · Pavel Machek
Hi!
Quoted 10 lines
This patch removes the few remaining direct invocations of the refrigerator in 2.6.13-rc3. In
drivers/media/video/msp3400.c, it also shifts the call to after theremove_wait_queue; this seems to be the more appropriate place.diff -ruNp
230-refrigerator-to-try_to_freeze.patch-old/fs/jbd/journal.c230-refrigerator-to-try_to_freeze.patch-new/fs/jbd/journal.cfs/jbd/journal.c loop: · line 181
Quoted 8 lines
fs/jbd/journal.c +1
-1@@ -175,7 +175,7 @@ loop:*/ jbd_debug (1 ,"Now suspending kjournald\n" );spin_unlock (&journal->j_state_lock); -refrigerator (); +try_to_freeze ();spin_lock (&journal->j_state_lock); }else {/* They probably tested it before, why test again?
fs/jfs/jfs_logmgr.c int jfsIOWait(void *arg) · line 2362
Quoted 6 lines
diff -ruNp
230-refrigerator-to-try_to_freeze.patch-old/fs/jfs/jfs_logmgr.c230-refrigerator-to-try_to_freeze.patch-new/fs/jfs/jfs_logmgr.cfs/jfs/jfs_logmgr.c +0
-0@@ -2361,7 +2361,7 @@ int jfsIOWait(void *arg) }if (freezing (current)) {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Quoted 8 lines
fs/jfs/jfs_logmgr.c int jfsIOWait(void *arg) · line 2367
Quoted 6 lines
fs/jfs/jfs_logmgr.c +1
-1spin_unlock_irq (&log_redrive_lock); -refrigerator (); +try_to_freeze (); }else {add_wait_queue (&jfs_IO_thread_wait, &wq);set_current_state (TASK_INTERRUPTIBLE );See? You are needlessly testing condition twice.
True. I was just concerned that things are messy and inconsistent as they stand (sometimes we use try_to_freeze and implicitly call refrigerator(), sometimes we call freezing() and refrigerator). *shrug*
Regards,
Nigel
Signature · 4 lines
Evolution. Enumerate the requirements. Consider the interdependencies. Calculate the probabilities.
Hi.
On the testing twice, fair enough. I'll send a new version with the refrigerator changes, as jbd won't need that dirty big if..else then since there's no danger of a deadlock.
Regards,
Nigel
Signature · 4 lines
Evolution. Enumerate the requirements. Consider the interdependencies. Calculate the probabilities.