diff options
Diffstat (limited to 'include/linux/jbd2.h')
-rw-r--r-- | include/linux/jbd2.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index adf832dec3f3..0b52924a0cb6 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
@@ -601,13 +601,13 @@ struct transaction_s | |||
601 | * Number of outstanding updates running on this transaction | 601 | * Number of outstanding updates running on this transaction |
602 | * [t_handle_lock] | 602 | * [t_handle_lock] |
603 | */ | 603 | */ |
604 | int t_updates; | 604 | atomic_t t_updates; |
605 | 605 | ||
606 | /* | 606 | /* |
607 | * Number of buffers reserved for use by all handles in this transaction | 607 | * Number of buffers reserved for use by all handles in this transaction |
608 | * handle but not yet modified. [t_handle_lock] | 608 | * handle but not yet modified. [t_handle_lock] |
609 | */ | 609 | */ |
610 | int t_outstanding_credits; | 610 | atomic_t t_outstanding_credits; |
611 | 611 | ||
612 | /* | 612 | /* |
613 | * Forward and backward links for the circular list of all transactions | 613 | * Forward and backward links for the circular list of all transactions |
@@ -629,7 +629,7 @@ struct transaction_s | |||
629 | /* | 629 | /* |
630 | * How many handles used this transaction? [t_handle_lock] | 630 | * How many handles used this transaction? [t_handle_lock] |
631 | */ | 631 | */ |
632 | int t_handle_count; | 632 | atomic_t t_handle_count; |
633 | 633 | ||
634 | /* | 634 | /* |
635 | * This transaction is being forced and some process is | 635 | * This transaction is being forced and some process is |
@@ -764,7 +764,7 @@ struct journal_s | |||
764 | /* | 764 | /* |
765 | * Protect the various scalars in the journal | 765 | * Protect the various scalars in the journal |
766 | */ | 766 | */ |
767 | spinlock_t j_state_lock; | 767 | rwlock_t j_state_lock; |
768 | 768 | ||
769 | /* | 769 | /* |
770 | * Number of processes waiting to create a barrier lock [j_state_lock] | 770 | * Number of processes waiting to create a barrier lock [j_state_lock] |
@@ -1082,7 +1082,9 @@ static inline handle_t *journal_current_handle(void) | |||
1082 | */ | 1082 | */ |
1083 | 1083 | ||
1084 | extern handle_t *jbd2_journal_start(journal_t *, int nblocks); | 1084 | extern handle_t *jbd2_journal_start(journal_t *, int nblocks); |
1085 | extern int jbd2_journal_restart (handle_t *, int nblocks); | 1085 | extern handle_t *jbd2__journal_start(journal_t *, int nblocks, int gfp_mask); |
1086 | extern int jbd2_journal_restart(handle_t *, int nblocks); | ||
1087 | extern int jbd2__journal_restart(handle_t *, int nblocks, int gfp_mask); | ||
1086 | extern int jbd2_journal_extend (handle_t *, int nblocks); | 1088 | extern int jbd2_journal_extend (handle_t *, int nblocks); |
1087 | extern int jbd2_journal_get_write_access(handle_t *, struct buffer_head *); | 1089 | extern int jbd2_journal_get_write_access(handle_t *, struct buffer_head *); |
1088 | extern int jbd2_journal_get_create_access (handle_t *, struct buffer_head *); | 1090 | 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) | |||
1257 | { | 1259 | { |
1258 | int nblocks = journal->j_max_transaction_buffers; | 1260 | int nblocks = journal->j_max_transaction_buffers; |
1259 | if (journal->j_committing_transaction) | 1261 | if (journal->j_committing_transaction) |
1260 | nblocks += journal->j_committing_transaction-> | 1262 | nblocks += atomic_read(&journal->j_committing_transaction-> |
1261 | t_outstanding_credits; | 1263 | t_outstanding_credits); |
1262 | return nblocks; | 1264 | return nblocks; |
1263 | } | 1265 | } |
1264 | 1266 | ||