Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / fs / jbd / checkpoint.c
index 5a97e34..3f5102b 100644 (file)
@@ -24,7 +24,7 @@
 #include <linux/slab.h>
 
 /*
- * Unlink a buffer from a transaction. 
+ * Unlink a buffer from a transaction.
  *
  * Called with j_list_lock held.
  */
@@ -85,7 +85,7 @@ void __log_wait_for_space(journal_t *journal)
                if (journal->j_flags & JFS_ABORT)
                        return;
                spin_unlock(&journal->j_state_lock);
-               down(&journal->j_checkpoint_sem);
+               mutex_lock(&journal->j_checkpoint_mutex);
 
                /*
                 * Test again, another process may have checkpointed while we
@@ -98,7 +98,7 @@ void __log_wait_for_space(journal_t *journal)
                        log_do_checkpoint(journal);
                        spin_lock(&journal->j_state_lock);
                }
-               up(&journal->j_checkpoint_sem);
+               mutex_unlock(&journal->j_checkpoint_mutex);
        }
 }
 
@@ -117,10 +117,10 @@ static void jbd_sync_bh(journal_t *journal, struct buffer_head *bh)
 }
 
 /*
- * Clean up a transaction's checkpoint list.  
+ * Clean up a transaction's checkpoint list.
  *
  * We wait for any pending IO to complete and make sure any clean
- * buffers are removed from the transaction. 
+ * buffers are removed from the transaction.
  *
  * Return 1 if we performed any actions which might have destroyed the
  * checkpoint.  (journal_remove_checkpoint() deletes the transaction when
@@ -204,7 +204,7 @@ __flush_batch(journal_t *journal, struct buffer_head **bhs, int *batch_count)
        int i;
 
        spin_unlock(&journal->j_list_lock);
-       ll_rw_block(WRITE, *batch_count, bhs);
+       ll_rw_block(SWRITE, *batch_count, bhs);
        spin_lock(&journal->j_list_lock);
        for (i = 0; i < *batch_count; i++) {
                struct buffer_head *bh = bhs[i];
@@ -276,7 +276,7 @@ static int __flush_buffer(journal_t *journal, struct journal_head *jh,
  * 
  * However, we _do_ take into account the amount requested so that once
  * the IO has been queued, we can return as soon as enough of it has
- * completed to disk.  
+ * completed to disk.
  *
  * The journal should be locked before calling this function.
  */
@@ -360,7 +360,7 @@ int log_do_checkpoint(journal_t *journal)
                /*
                 * We have walked the whole transaction list without
                 * finding anything to write to disk.  We had better be
-                * able to make some progress or we are in trouble. 
+                * able to make some progress or we are in trouble.
                 */
                cleanup_ret = __cleanup_transaction(journal, transaction);
                J_ASSERT(drop_count != 0 || cleanup_ret != 0);
@@ -518,7 +518,7 @@ out:
  * transaction need to be maintained on the transaction's checkpoint
  * list until they have been rewritten, at which point this function is
  * called to remove the buffer from the existing transaction's
- * checkpoint list.  
+ * checkpoint list.
  *
  * This function is called with the journal locked.
  * This function is called with j_list_lock held.