Lines Matching full:dfp
202 struct xfs_defer_pending *dfp, in xfs_defer_create_intent() argument
205 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type]; in xfs_defer_create_intent()
208 if (dfp->dfp_intent) in xfs_defer_create_intent()
211 lip = ops->create_intent(tp, &dfp->dfp_work, dfp->dfp_count, sort); in xfs_defer_create_intent()
217 dfp->dfp_intent = lip; in xfs_defer_create_intent()
233 struct xfs_defer_pending *dfp; in xfs_defer_create_intents() local
236 list_for_each_entry(dfp, &tp->t_dfops, dfp_list) { in xfs_defer_create_intents()
239 trace_xfs_defer_create_intent(tp->t_mountp, dfp); in xfs_defer_create_intents()
240 ret2 = xfs_defer_create_intent(tp, dfp, true); in xfs_defer_create_intents()
251 struct xfs_defer_pending *dfp) in xfs_defer_pending_abort() argument
253 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type]; in xfs_defer_pending_abort()
255 trace_xfs_defer_pending_abort(mp, dfp); in xfs_defer_pending_abort()
257 if (dfp->dfp_intent && !dfp->dfp_done) { in xfs_defer_pending_abort()
258 ops->abort_intent(dfp->dfp_intent); in xfs_defer_pending_abort()
259 dfp->dfp_intent = NULL; in xfs_defer_pending_abort()
266 struct xfs_defer_pending *dfp) in xfs_defer_pending_cancel_work() argument
268 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type]; in xfs_defer_pending_cancel_work()
272 trace_xfs_defer_cancel_list(mp, dfp); in xfs_defer_pending_cancel_work()
274 list_del(&dfp->dfp_list); in xfs_defer_pending_cancel_work()
275 list_for_each_safe(pwi, n, &dfp->dfp_work) { in xfs_defer_pending_cancel_work()
277 dfp->dfp_count--; in xfs_defer_pending_cancel_work()
278 trace_xfs_defer_cancel_item(mp, dfp, pwi); in xfs_defer_pending_cancel_work()
281 ASSERT(dfp->dfp_count == 0); in xfs_defer_pending_cancel_work()
282 kmem_cache_free(xfs_defer_pending_cache, dfp); in xfs_defer_pending_cancel_work()
290 struct xfs_defer_pending *dfp; in xfs_defer_pending_abort_list() local
293 list_for_each_entry(dfp, dop_list, dfp_list) in xfs_defer_pending_abort_list()
294 xfs_defer_pending_abort(mp, dfp); in xfs_defer_pending_abort_list()
420 struct xfs_defer_pending *dfp; in xfs_defer_cancel_list() local
427 list_for_each_entry_safe(dfp, pli, dop_list, dfp_list) in xfs_defer_cancel_list()
428 xfs_defer_pending_cancel_work(mp, dfp); in xfs_defer_cancel_list()
442 struct xfs_defer_pending *dfp; in xfs_defer_relog() local
448 list_for_each_entry(dfp, dfops, dfp_list) { in xfs_defer_relog()
456 if (dfp->dfp_intent == NULL || in xfs_defer_relog()
457 xfs_log_item_in_current_chkpt(dfp->dfp_intent)) in xfs_defer_relog()
470 if (XFS_LSN_CMP(dfp->dfp_intent->li_lsn, threshold_lsn) >= 0) in xfs_defer_relog()
473 trace_xfs_defer_relog_intent((*tpp)->t_mountp, dfp); in xfs_defer_relog()
475 dfp->dfp_intent = xfs_trans_item_relog(dfp->dfp_intent, *tpp); in xfs_defer_relog()
490 struct xfs_defer_pending *dfp) in xfs_defer_finish_one() argument
492 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type]; in xfs_defer_finish_one()
497 trace_xfs_defer_pending_finish(tp->t_mountp, dfp); in xfs_defer_finish_one()
499 dfp->dfp_done = ops->create_done(tp, dfp->dfp_intent, dfp->dfp_count); in xfs_defer_finish_one()
500 list_for_each_safe(li, n, &dfp->dfp_work) { in xfs_defer_finish_one()
502 dfp->dfp_count--; in xfs_defer_finish_one()
503 trace_xfs_defer_finish_item(tp->t_mountp, dfp, li); in xfs_defer_finish_one()
504 error = ops->finish_item(tp, dfp->dfp_done, li, &state); in xfs_defer_finish_one()
514 list_add(li, &dfp->dfp_work); in xfs_defer_finish_one()
515 dfp->dfp_count++; in xfs_defer_finish_one()
516 dfp->dfp_done = NULL; in xfs_defer_finish_one()
517 dfp->dfp_intent = NULL; in xfs_defer_finish_one()
518 ret = xfs_defer_create_intent(tp, dfp, false); in xfs_defer_finish_one()
527 /* Done with the dfp, free it. */ in xfs_defer_finish_one()
528 list_del(&dfp->dfp_list); in xfs_defer_finish_one()
529 kmem_cache_free(xfs_defer_pending_cache, dfp); in xfs_defer_finish_one()
548 struct xfs_defer_pending *dfp = NULL; in xfs_defer_finish_noroll() local
575 if (has_intents || dfp) { in xfs_defer_finish_noroll()
586 dfp = list_first_entry(&dop_pending, struct xfs_defer_pending, in xfs_defer_finish_noroll()
588 error = xfs_defer_finish_one(*tp, dfp); in xfs_defer_finish_noroll()
650 struct xfs_defer_pending *dfp = NULL; in xfs_defer_add() local
662 dfp = list_last_entry(&tp->t_dfops, in xfs_defer_add()
664 if (dfp->dfp_type != type || in xfs_defer_add()
665 (ops->max_items && dfp->dfp_count >= ops->max_items)) in xfs_defer_add()
666 dfp = NULL; in xfs_defer_add()
668 if (!dfp) { in xfs_defer_add()
669 dfp = kmem_cache_zalloc(xfs_defer_pending_cache, in xfs_defer_add()
671 dfp->dfp_type = type; in xfs_defer_add()
672 dfp->dfp_intent = NULL; in xfs_defer_add()
673 dfp->dfp_done = NULL; in xfs_defer_add()
674 dfp->dfp_count = 0; in xfs_defer_add()
675 INIT_LIST_HEAD(&dfp->dfp_work); in xfs_defer_add()
676 list_add_tail(&dfp->dfp_list, &tp->t_dfops); in xfs_defer_add()
679 list_add_tail(li, &dfp->dfp_work); in xfs_defer_add()
680 trace_xfs_defer_add_item(tp->t_mountp, dfp, li); in xfs_defer_add()
681 dfp->dfp_count++; in xfs_defer_add()
694 struct xfs_defer_pending *dfp; in xfs_defer_start_recovery() local
696 dfp = kmem_cache_zalloc(xfs_defer_pending_cache, in xfs_defer_start_recovery()
698 dfp->dfp_type = dfp_type; in xfs_defer_start_recovery()
699 dfp->dfp_intent = lip; in xfs_defer_start_recovery()
700 INIT_LIST_HEAD(&dfp->dfp_work); in xfs_defer_start_recovery()
701 list_add_tail(&dfp->dfp_list, r_dfops); in xfs_defer_start_recovery()
705 * Cancel a deferred work item created to recover a log intent item. @dfp
711 struct xfs_defer_pending *dfp) in xfs_defer_cancel_recovery() argument
713 xfs_defer_pending_abort(mp, dfp); in xfs_defer_cancel_recovery()
714 xfs_defer_pending_cancel_work(mp, dfp); in xfs_defer_cancel_recovery()