Lines Matching refs:handle
84 static int start_this_handle(journal_t *journal, handle_t *handle) in start_this_handle() argument
88 int nblocks = handle->h_buffer_credits; in start_this_handle()
110 jbd_debug(3, "New handle %p going live.\n", handle); in start_this_handle()
177 jbd_debug(2, "Handle %p starting new commit...\n", handle); in start_this_handle()
214 jbd_debug(2, "Handle %p waiting for checkpoint...\n", handle); in start_this_handle()
223 handle->h_transaction = transaction; in start_this_handle()
228 handle, nblocks, transaction->t_outstanding_credits, in start_this_handle()
233 lock_map_acquire(&handle->h_lockdep_map); in start_this_handle()
245 handle_t *handle = jbd_alloc_handle(GFP_NOFS); in new_handle() local
246 if (!handle) in new_handle()
248 handle->h_buffer_credits = nblocks; in new_handle()
249 handle->h_ref = 1; in new_handle()
251 lockdep_init_map(&handle->h_lockdep_map, "jbd_handle", &jbd_handle_key, 0); in new_handle()
253 return handle; in new_handle()
273 handle_t *handle = journal_current_handle(); in journal_start() local
279 if (handle) { in journal_start()
280 J_ASSERT(handle->h_transaction->t_journal == journal); in journal_start()
281 handle->h_ref++; in journal_start()
282 return handle; in journal_start()
285 handle = new_handle(nblocks); in journal_start()
286 if (!handle) in journal_start()
289 current->journal_info = handle; in journal_start()
291 err = start_this_handle(journal, handle); in journal_start()
293 jbd_free_handle(handle); in journal_start()
295 handle = ERR_PTR(err); in journal_start()
297 return handle; in journal_start()
320 int journal_extend(handle_t *handle, int nblocks) in journal_extend() argument
322 transaction_t *transaction = handle->h_transaction; in journal_extend()
328 if (is_handle_aborted(handle)) in journal_extend()
336 if (handle->h_transaction->t_state != T_RUNNING) { in journal_extend()
338 "transaction not running\n", handle, nblocks); in journal_extend()
347 "transaction too large\n", handle, nblocks); in journal_extend()
353 "insufficient log space\n", handle, nblocks); in journal_extend()
357 handle->h_buffer_credits += nblocks; in journal_extend()
361 jbd_debug(3, "extended handle %p by %d\n", handle, nblocks); in journal_extend()
386 int journal_restart(handle_t *handle, int nblocks) in journal_restart() argument
388 transaction_t *transaction = handle->h_transaction; in journal_restart()
394 if (is_handle_aborted(handle)) in journal_restart()
402 J_ASSERT(journal_current_handle() == handle); in journal_restart()
406 transaction->t_outstanding_credits -= handle->h_buffer_credits; in journal_restart()
413 jbd_debug(2, "restarting handle %p\n", handle); in journal_restart()
417 lock_map_release(&handle->h_lockdep_map); in journal_restart()
418 handle->h_buffer_credits = nblocks; in journal_restart()
419 ret = start_this_handle(journal, handle); in journal_restart()
519 do_get_write_access(handle_t *handle, struct journal_head *jh, in do_get_write_access() argument
529 if (is_handle_aborted(handle)) in do_get_write_access()
532 transaction = handle->h_transaction; in do_get_write_access()
587 if (is_handle_aborted(handle)) { in do_get_write_access()
730 journal_cancel_revoke(handle, jh); in do_get_write_access()
751 int journal_get_write_access(handle_t *handle, struct buffer_head *bh) in journal_get_write_access() argument
759 rc = do_get_write_access(handle, jh, 0); in journal_get_write_access()
784 int journal_get_create_access(handle_t *handle, struct buffer_head *bh) in journal_get_create_access() argument
786 transaction_t *transaction = handle->h_transaction; in journal_get_create_access()
793 if (is_handle_aborted(handle)) in journal_get_create_access()
849 journal_cancel_revoke(handle, jh); in journal_get_create_access()
880 int journal_get_undo_access(handle_t *handle, struct buffer_head *bh) in journal_get_undo_access() argument
893 err = do_get_write_access(handle, jh, 1); in journal_get_undo_access()
947 int journal_dirty_data(handle_t *handle, struct buffer_head *bh) in journal_dirty_data() argument
949 journal_t *journal = handle->h_transaction->t_journal; in journal_dirty_data()
954 if (is_handle_aborted(handle)) in journal_dirty_data()
964 jbd_debug(4, "jh: %p, tid:%d\n", jh, handle->h_transaction->t_tid); in journal_dirty_data()
998 if (jh->b_transaction != handle->h_transaction) { in journal_dirty_data()
1077 jh->b_transaction != handle->h_transaction) { in journal_dirty_data()
1084 jh->b_transaction = handle->h_transaction; in journal_dirty_data()
1099 __journal_file_buffer(jh, handle->h_transaction, in journal_dirty_data()
1104 __journal_file_buffer(jh, handle->h_transaction, BJ_SyncData); in journal_dirty_data()
1137 int journal_dirty_metadata(handle_t *handle, struct buffer_head *bh) in journal_dirty_metadata() argument
1139 transaction_t *transaction = handle->h_transaction; in journal_dirty_metadata()
1145 if (is_handle_aborted(handle)) in journal_dirty_metadata()
1157 J_ASSERT_JH(jh, handle->h_buffer_credits > 0); in journal_dirty_metadata()
1158 handle->h_buffer_credits--; in journal_dirty_metadata()
1198 __journal_file_buffer(jh, handle->h_transaction, BJ_Metadata); in journal_dirty_metadata()
1213 journal_release_buffer(handle_t *handle, struct buffer_head *bh) in journal_release_buffer() argument
1235 int journal_forget (handle_t *handle, struct buffer_head *bh) in journal_forget() argument
1237 transaction_t *transaction = handle->h_transaction; in journal_forget()
1270 if (jh->b_transaction == handle->h_transaction) { in journal_forget()
1341 handle->h_buffer_credits++; in journal_forget()
1362 int journal_stop(handle_t *handle) in journal_stop() argument
1364 transaction_t *transaction = handle->h_transaction; in journal_stop()
1369 J_ASSERT(journal_current_handle() == handle); in journal_stop()
1371 if (is_handle_aborted(handle)) in journal_stop()
1378 if (--handle->h_ref > 0) { in journal_stop()
1379 jbd_debug(4, "h_ref %d -> %d\n", handle->h_ref + 1, in journal_stop()
1380 handle->h_ref); in journal_stop()
1384 jbd_debug(4, "Handle %p going down\n", handle); in journal_stop()
1412 if (handle->h_sync && journal->j_last_sync_writer != pid) { in journal_stop()
1438 transaction->t_outstanding_credits -= handle->h_buffer_credits; in journal_stop()
1452 if (handle->h_sync || in journal_stop()
1463 "handle %p\n", handle); in journal_stop()
1472 if (handle->h_sync && !(current->flags & PF_MEMALLOC)) in journal_stop()
1479 lock_map_release(&handle->h_lockdep_map); in journal_stop()
1481 jbd_free_handle(handle); in journal_stop()
1495 handle_t *handle; in journal_force_commit() local
1498 handle = journal_start(journal, 1); in journal_force_commit()
1499 if (IS_ERR(handle)) { in journal_force_commit()
1500 ret = PTR_ERR(handle); in journal_force_commit()
1502 handle->h_sync = 1; in journal_force_commit()
1503 ret = journal_stop(handle); in journal_force_commit()