Lines Matching refs:dfp
202 struct xfs_defer_pending *dfp,
205 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type];
208 if (dfp->dfp_intent)
211 lip = ops->create_intent(tp, &dfp->dfp_work, dfp->dfp_count, sort);
217 dfp->dfp_intent = lip;
233 struct xfs_defer_pending *dfp;
236 list_for_each_entry(dfp, &tp->t_dfops, dfp_list) {
239 trace_xfs_defer_create_intent(tp->t_mountp, dfp);
240 ret2 = xfs_defer_create_intent(tp, dfp, true);
253 struct xfs_defer_pending *dfp;
257 list_for_each_entry(dfp, dop_list, dfp_list) {
258 ops = defer_op_types[dfp->dfp_type];
259 trace_xfs_defer_pending_abort(mp, dfp);
260 if (dfp->dfp_intent && !dfp->dfp_done) {
261 ops->abort_intent(dfp->dfp_intent);
262 dfp->dfp_intent = NULL;
390 struct xfs_defer_pending *dfp;
400 list_for_each_entry_safe(dfp, pli, dop_list, dfp_list) {
401 ops = defer_op_types[dfp->dfp_type];
402 trace_xfs_defer_cancel_list(mp, dfp);
403 list_del(&dfp->dfp_list);
404 list_for_each_safe(pwi, n, &dfp->dfp_work) {
406 dfp->dfp_count--;
407 trace_xfs_defer_cancel_item(mp, dfp, pwi);
410 ASSERT(dfp->dfp_count == 0);
411 kmem_cache_free(xfs_defer_pending_cache, dfp);
426 struct xfs_defer_pending *dfp;
432 list_for_each_entry(dfp, dfops, dfp_list) {
440 if (dfp->dfp_intent == NULL ||
441 xfs_log_item_in_current_chkpt(dfp->dfp_intent))
454 if (XFS_LSN_CMP(dfp->dfp_intent->li_lsn, threshold_lsn) >= 0)
457 trace_xfs_defer_relog_intent((*tpp)->t_mountp, dfp);
459 dfp->dfp_intent = xfs_trans_item_relog(dfp->dfp_intent, *tpp);
474 struct xfs_defer_pending *dfp)
476 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type];
481 trace_xfs_defer_pending_finish(tp->t_mountp, dfp);
483 dfp->dfp_done = ops->create_done(tp, dfp->dfp_intent, dfp->dfp_count);
484 list_for_each_safe(li, n, &dfp->dfp_work) {
486 dfp->dfp_count--;
487 trace_xfs_defer_finish_item(tp->t_mountp, dfp, li);
488 error = ops->finish_item(tp, dfp->dfp_done, li, &state);
498 list_add(li, &dfp->dfp_work);
499 dfp->dfp_count++;
500 dfp->dfp_done = NULL;
501 dfp->dfp_intent = NULL;
502 ret = xfs_defer_create_intent(tp, dfp, false);
511 /* Done with the dfp, free it. */
512 list_del(&dfp->dfp_list);
513 kmem_cache_free(xfs_defer_pending_cache, dfp);
532 struct xfs_defer_pending *dfp = NULL;
559 if (has_intents || dfp) {
570 dfp = list_first_entry(&dop_pending, struct xfs_defer_pending,
572 error = xfs_defer_finish_one(*tp, dfp);
634 struct xfs_defer_pending *dfp = NULL;
646 dfp = list_last_entry(&tp->t_dfops,
648 if (dfp->dfp_type != type ||
649 (ops->max_items && dfp->dfp_count >= ops->max_items))
650 dfp = NULL;
652 if (!dfp) {
653 dfp = kmem_cache_zalloc(xfs_defer_pending_cache,
655 dfp->dfp_type = type;
656 dfp->dfp_intent = NULL;
657 dfp->dfp_done = NULL;
658 dfp->dfp_count = 0;
659 INIT_LIST_HEAD(&dfp->dfp_work);
660 list_add_tail(&dfp->dfp_list, &tp->t_dfops);
663 list_add_tail(li, &dfp->dfp_work);
664 trace_xfs_defer_add_item(tp->t_mountp, dfp, li);
665 dfp->dfp_count++;