diff options
| author | Theodore Ts'o <tytso@mit.edu> | 2010-08-09 17:28:38 -0400 |
|---|---|---|
| committer | Theodore Ts'o <tytso@mit.edu> | 2010-08-09 17:28:38 -0400 |
| commit | 6d0bf00512b3b1b5d09d9a44919983eec1cc6fd0 (patch) | |
| tree | 4aef98bb3b212cc04f1dbb011548d83f9ab77c3e /fs | |
| parent | 45d7f32c7a43cbb9592886d38190e379e2eb2226 (diff) | |
ext4: clean up compiler warning in start_this_handle()
Fix the compiler warning:
fs/jbd2/transaction.c: In function ‘start_this_handle’:
fs/jbd2/transaction.c:98: warning: unused variable ‘ts’
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/jbd2/transaction.c | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c index d95cc9d0401..f3479d6e0a8 100644 --- a/fs/jbd2/transaction.c +++ b/fs/jbd2/transaction.c | |||
| @@ -82,6 +82,32 @@ jbd2_get_transaction(journal_t *journal, transaction_t *transaction) | |||
| 82 | */ | 82 | */ |
| 83 | 83 | ||
| 84 | /* | 84 | /* |
| 85 | * Update transiaction's maximum wait time, if debugging is enabled. | ||
| 86 | * | ||
| 87 | * In order for t_max_wait to be reliable, it must be protected by a | ||
| 88 | * lock. But doing so will mean that start_this_handle() can not be | ||
| 89 | * run in parallel on SMP systems, which limits our scalability. So | ||
| 90 | * unless debugging is enabled, we no longer update t_max_wait, which | ||
| 91 | * means that maximum wait time reported by the jbd2_run_stats | ||
| 92 | * tracepoint will always be zero. | ||
| 93 | */ | ||
| 94 | static inline void update_t_max_wait(transaction_t *transaction) | ||
| 95 | { | ||
| 96 | #ifdef CONFIG_JBD2_DEBUG | ||
| 97 | unsigned long ts = jiffies; | ||
| 98 | |||
| 99 | if (jbd2_journal_enable_debug && | ||
| 100 | time_after(transaction->t_start, ts)) { | ||
| 101 | ts = jbd2_time_diff(ts, transaction->t_start); | ||
| 102 | spin_lock(&transaction->t_handle_lock); | ||
| 103 | if (ts > transaction->t_max_wait) | ||
| 104 | transaction->t_max_wait = ts; | ||
| 105 | spin_unlock(&transaction->t_handle_lock); | ||
| 106 | } | ||
| 107 | #endif | ||
| 108 | } | ||
| 109 | |||
| 110 | /* | ||
| 85 | * start_this_handle: Given a handle, deal with any locking or stalling | 111 | * start_this_handle: Given a handle, deal with any locking or stalling |
| 86 | * needed to make sure that there is enough journal space for the handle | 112 | * needed to make sure that there is enough journal space for the handle |
| 87 | * to begin. Attach the handle to a transaction and set up the | 113 | * to begin. Attach the handle to a transaction and set up the |
| @@ -95,7 +121,6 @@ static int start_this_handle(journal_t *journal, handle_t *handle, | |||
| 95 | int needed; | 121 | int needed; |
| 96 | int nblocks = handle->h_buffer_credits; | 122 | int nblocks = handle->h_buffer_credits; |
| 97 | transaction_t *new_transaction = NULL; | 123 | transaction_t *new_transaction = NULL; |
| 98 | unsigned long ts = jiffies; | ||
| 99 | 124 | ||
| 100 | if (nblocks > journal->j_max_transaction_buffers) { | 125 | if (nblocks > journal->j_max_transaction_buffers) { |
| 101 | printk(KERN_ERR "JBD: %s wants too many credits (%d > %d)\n", | 126 | printk(KERN_ERR "JBD: %s wants too many credits (%d > %d)\n", |
| @@ -241,25 +266,8 @@ repeat: | |||
| 241 | 266 | ||
| 242 | /* OK, account for the buffers that this operation expects to | 267 | /* OK, account for the buffers that this operation expects to |
| 243 | * use and add the handle to the running transaction. | 268 | * use and add the handle to the running transaction. |
| 244 | * | ||
| 245 | * In order for t_max_wait to be reliable, it must be | ||
| 246 | * protected by a lock. But doing so will mean that | ||
| 247 | * start_this_handle() can not be run in parallel on SMP | ||
| 248 | * systems, which limits our scalability. So we only enable | ||
| 249 | * it when debugging is enabled. We may want to use a | ||
| 250 | * separate flag, eventually, so we can enable this | ||
| 251 | * independently of debugging. | ||
| 252 | */ | 269 | */ |
| 253 | #ifdef CONFIG_JBD2_DEBUG | 270 | update_t_max_wait(transaction); |
| 254 | if (jbd2_journal_enable_debug && | ||
| 255 | time_after(transaction->t_start, ts)) { | ||
| 256 | ts = jbd2_time_diff(ts, transaction->t_start); | ||
| 257 | spin_lock(&transaction->t_handle_lock); | ||
| 258 | if (ts > transaction->t_max_wait) | ||
| 259 | transaction->t_max_wait = ts; | ||
| 260 | spin_unlock(&transaction->t_handle_lock); | ||
| 261 | } | ||
| 262 | #endif | ||
| 263 | handle->h_transaction = transaction; | 271 | handle->h_transaction = transaction; |
| 264 | atomic_inc(&transaction->t_updates); | 272 | atomic_inc(&transaction->t_updates); |
| 265 | atomic_inc(&transaction->t_handle_count); | 273 | atomic_inc(&transaction->t_handle_count); |
