Merge commit 'v2.6.37-rc1' into for-2.6.37
[cascardo/linux.git] / include / linux / jbd2.h
index adf832d..2ae86aa 100644 (file)
@@ -395,7 +395,7 @@ struct jbd2_inode {
        struct inode *i_vfs_inode;
 
        /* Flags of inode [j_list_lock] */
-       unsigned int i_flags;
+       unsigned long i_flags;
 };
 
 struct jbd2_revoke_table_s;
@@ -601,13 +601,13 @@ struct transaction_s
         * Number of outstanding updates running on this transaction
         * [t_handle_lock]
         */
-       int                     t_updates;
+       atomic_t                t_updates;
 
        /*
         * Number of buffers reserved for use by all handles in this transaction
         * handle but not yet modified. [t_handle_lock]
         */
-       int                     t_outstanding_credits;
+       atomic_t                t_outstanding_credits;
 
        /*
         * Forward and backward links for the circular list of all transactions
@@ -629,7 +629,7 @@ struct transaction_s
        /*
         * How many handles used this transaction? [t_handle_lock]
         */
-       int t_handle_count;
+       atomic_t                t_handle_count;
 
        /*
         * This transaction is being forced and some process is
@@ -764,7 +764,7 @@ struct journal_s
        /*
         * Protect the various scalars in the journal
         */
-       spinlock_t              j_state_lock;
+       rwlock_t                j_state_lock;
 
        /*
         * Number of processes waiting to create a barrier lock [j_state_lock]
@@ -1082,7 +1082,9 @@ static inline handle_t *journal_current_handle(void)
  */
 
 extern handle_t *jbd2_journal_start(journal_t *, int nblocks);
-extern int      jbd2_journal_restart (handle_t *, int nblocks);
+extern handle_t *jbd2__journal_start(journal_t *, int nblocks, int gfp_mask);
+extern int      jbd2_journal_restart(handle_t *, int nblocks);
+extern int      jbd2__journal_restart(handle_t *, int nblocks, int gfp_mask);
 extern int      jbd2_journal_extend (handle_t *, int nblocks);
 extern int      jbd2_journal_get_write_access(handle_t *, struct buffer_head *);
 extern int      jbd2_journal_get_create_access (handle_t *, struct buffer_head *);
@@ -1257,8 +1259,8 @@ static inline int jbd_space_needed(journal_t *journal)
 {
        int nblocks = journal->j_max_transaction_buffers;
        if (journal->j_committing_transaction)
-               nblocks += journal->j_committing_transaction->
-                                       t_outstanding_credits;
+               nblocks += atomic_read(&journal->j_committing_transaction->
+                                      t_outstanding_credits);
        return nblocks;
 }