Lines Matching refs:dfc

966 	struct xfs_defer_capture	*dfc;
978 dfc = kzalloc(sizeof(*dfc), GFP_KERNEL | __GFP_NOFAIL);
979 INIT_LIST_HEAD(&dfc->dfc_list);
980 INIT_LIST_HEAD(&dfc->dfc_dfops);
983 list_splice_init(&tp->t_dfops, &dfc->dfc_dfops);
984 dfc->dfc_tpflags = tp->t_flags & XFS_TRANS_LOWMODE;
988 dfc->dfc_blkres = tp->t_blk_res - tp->t_blk_res_used;
989 dfc->dfc_rtxres = tp->t_rtx_res - tp->t_rtx_res_used;
992 dfc->dfc_logres = tp->t_log_res;
994 error = xfs_defer_save_resources(&dfc->dfc_held, tp);
1009 for (i = 0; i < dfc->dfc_held.dr_inos; i++) {
1010 xfs_assert_ilocked(dfc->dfc_held.dr_ip[i], XFS_ILOCK_EXCL);
1011 ihold(VFS_I(dfc->dfc_held.dr_ip[i]));
1014 for (i = 0; i < dfc->dfc_held.dr_bufs; i++)
1015 xfs_buf_hold(dfc->dfc_held.dr_bp[i]);
1017 return dfc;
1024 struct xfs_defer_capture *dfc)
1028 xfs_defer_pending_abort_list(mp, &dfc->dfc_dfops);
1029 xfs_defer_cancel_list(mp, &dfc->dfc_dfops);
1031 for (i = 0; i < dfc->dfc_held.dr_bufs; i++)
1032 xfs_buf_relse(dfc->dfc_held.dr_bp[i]);
1034 for (i = 0; i < dfc->dfc_held.dr_inos; i++)
1035 xfs_irele(dfc->dfc_held.dr_ip[i]);
1037 kfree(dfc);
1054 struct xfs_defer_capture *dfc;
1058 dfc = xfs_defer_ops_capture(tp);
1059 if (IS_ERR(dfc)) {
1061 return PTR_ERR(dfc);
1063 if (!dfc)
1069 xfs_defer_ops_capture_abort(mp, dfc);
1073 list_add_tail(&dfc->dfc_list, capture_list);
1085 struct xfs_defer_capture *dfc,
1095 if (dfc->dfc_held.dr_inos > 2) {
1096 xfs_sort_inodes(dfc->dfc_held.dr_ip, dfc->dfc_held.dr_inos);
1097 xfs_lock_inodes(dfc->dfc_held.dr_ip, dfc->dfc_held.dr_inos,
1099 } else if (dfc->dfc_held.dr_inos == 2)
1100 xfs_lock_two_inodes(dfc->dfc_held.dr_ip[0], XFS_ILOCK_EXCL,
1101 dfc->dfc_held.dr_ip[1], XFS_ILOCK_EXCL);
1102 else if (dfc->dfc_held.dr_inos == 1)
1103 xfs_ilock(dfc->dfc_held.dr_ip[0], XFS_ILOCK_EXCL);
1105 for (i = 0; i < dfc->dfc_held.dr_bufs; i++)
1106 xfs_buf_lock(dfc->dfc_held.dr_bp[i]);
1109 xfs_defer_restore_resources(tp, &dfc->dfc_held);
1110 memcpy(dres, &dfc->dfc_held, sizeof(struct xfs_defer_resources));
1114 list_splice_init(&dfc->dfc_dfops, &tp->t_dfops);
1115 tp->t_flags |= dfc->dfc_tpflags;
1117 kfree(dfc);