Lines Matching refs:dfp
186 struct xfs_defer_pending *dfp,
189 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type];
191 if (!dfp->dfp_intent)
192 dfp->dfp_intent = ops->create_intent(tp, &dfp->dfp_work,
193 dfp->dfp_count, sort);
205 struct xfs_defer_pending *dfp;
207 list_for_each_entry(dfp, &tp->t_dfops, dfp_list) {
208 trace_xfs_defer_create_intent(tp->t_mountp, dfp);
209 xfs_defer_create_intent(tp, dfp, true);
219 struct xfs_defer_pending *dfp;
225 list_for_each_entry(dfp, dop_pending, dfp_list) {
226 ops = defer_op_types[dfp->dfp_type];
227 trace_xfs_defer_pending_abort(tp->t_mountp, dfp);
228 if (dfp->dfp_intent && !dfp->dfp_done) {
229 ops->abort_intent(dfp->dfp_intent);
230 dfp->dfp_intent = NULL;
325 struct xfs_defer_pending *dfp;
335 list_for_each_entry_safe(dfp, pli, dop_list, dfp_list) {
336 ops = defer_op_types[dfp->dfp_type];
337 trace_xfs_defer_cancel_list(mp, dfp);
338 list_del(&dfp->dfp_list);
339 list_for_each_safe(pwi, n, &dfp->dfp_work) {
341 dfp->dfp_count--;
344 ASSERT(dfp->dfp_count == 0);
345 kmem_free(dfp);
360 struct xfs_defer_pending *dfp;
366 list_for_each_entry(dfp, dfops, dfp_list) {
374 if (dfp->dfp_intent == NULL ||
375 xfs_log_item_in_current_chkpt(dfp->dfp_intent))
388 if (XFS_LSN_CMP(dfp->dfp_intent->li_lsn, threshold_lsn) >= 0)
391 trace_xfs_defer_relog_intent((*tpp)->t_mountp, dfp);
393 dfp->dfp_intent = xfs_trans_item_relog(dfp->dfp_intent, *tpp);
408 struct xfs_defer_pending *dfp)
410 const struct xfs_defer_op_type *ops = defer_op_types[dfp->dfp_type];
415 trace_xfs_defer_pending_finish(tp->t_mountp, dfp);
417 dfp->dfp_done = ops->create_done(tp, dfp->dfp_intent, dfp->dfp_count);
418 list_for_each_safe(li, n, &dfp->dfp_work) {
420 dfp->dfp_count--;
421 error = ops->finish_item(tp, dfp->dfp_done, li, &state);
429 list_add(li, &dfp->dfp_work);
430 dfp->dfp_count++;
431 dfp->dfp_done = NULL;
432 dfp->dfp_intent = NULL;
433 xfs_defer_create_intent(tp, dfp, false);
440 /* Done with the dfp, free it. */
441 list_del(&dfp->dfp_list);
442 kmem_free(dfp);
461 struct xfs_defer_pending *dfp;
492 dfp = list_first_entry(&dop_pending, struct xfs_defer_pending,
494 error = xfs_defer_finish_one(*tp, dfp);
556 struct xfs_defer_pending *dfp = NULL;
568 dfp = list_last_entry(&tp->t_dfops,
570 ops = defer_op_types[dfp->dfp_type];
571 if (dfp->dfp_type != type ||
572 (ops->max_items && dfp->dfp_count >= ops->max_items))
573 dfp = NULL;
575 if (!dfp) {
576 dfp = kmem_alloc(sizeof(struct xfs_defer_pending),
578 dfp->dfp_type = type;
579 dfp->dfp_intent = NULL;
580 dfp->dfp_done = NULL;
581 dfp->dfp_count = 0;
582 INIT_LIST_HEAD(&dfp->dfp_work);
583 list_add_tail(&dfp->dfp_list, &tp->t_dfops);
586 list_add_tail(li, &dfp->dfp_work);
587 dfp->dfp_count++;