Lines Matching defs:dfc

965 	struct xfs_defer_capture	*dfc;
977 dfc = kzalloc(sizeof(*dfc), GFP_KERNEL | __GFP_NOFAIL);
978 INIT_LIST_HEAD(&dfc->dfc_list);
979 INIT_LIST_HEAD(&dfc->dfc_dfops);
982 list_splice_init(&tp->t_dfops, &dfc->dfc_dfops);
983 dfc->dfc_tpflags = tp->t_flags & XFS_TRANS_LOWMODE;
987 dfc->dfc_blkres = tp->t_blk_res - tp->t_blk_res_used;
988 dfc->dfc_rtxres = tp->t_rtx_res - tp->t_rtx_res_used;
991 dfc->dfc_logres = tp->t_log_res;
993 error = xfs_defer_save_resources(&dfc->dfc_held, tp);
1008 for (i = 0; i < dfc->dfc_held.dr_inos; i++) {
1009 xfs_assert_ilocked(dfc->dfc_held.dr_ip[i], XFS_ILOCK_EXCL);
1010 ihold(VFS_I(dfc->dfc_held.dr_ip[i]));
1013 for (i = 0; i < dfc->dfc_held.dr_bufs; i++)
1014 xfs_buf_hold(dfc->dfc_held.dr_bp[i]);
1016 return dfc;
1023 struct xfs_defer_capture *dfc)
1027 xfs_defer_pending_abort_list(mp, &dfc->dfc_dfops);
1028 xfs_defer_cancel_list(mp, &dfc->dfc_dfops);
1030 for (i = 0; i < dfc->dfc_held.dr_bufs; i++)
1031 xfs_buf_relse(dfc->dfc_held.dr_bp[i]);
1033 for (i = 0; i < dfc->dfc_held.dr_inos; i++)
1034 xfs_irele(dfc->dfc_held.dr_ip[i]);
1036 kfree(dfc);
1053 struct xfs_defer_capture *dfc;
1057 dfc = xfs_defer_ops_capture(tp);
1058 if (IS_ERR(dfc)) {
1060 return PTR_ERR(dfc);
1062 if (!dfc)
1068 xfs_defer_ops_capture_abort(mp, dfc);
1072 list_add_tail(&dfc->dfc_list, capture_list);
1084 struct xfs_defer_capture *dfc,
1094 if (dfc->dfc_held.dr_inos == 2)
1095 xfs_lock_two_inodes(dfc->dfc_held.dr_ip[0], XFS_ILOCK_EXCL,
1096 dfc->dfc_held.dr_ip[1], XFS_ILOCK_EXCL);
1097 else if (dfc->dfc_held.dr_inos == 1)
1098 xfs_ilock(dfc->dfc_held.dr_ip[0], XFS_ILOCK_EXCL);
1100 for (i = 0; i < dfc->dfc_held.dr_bufs; i++)
1101 xfs_buf_lock(dfc->dfc_held.dr_bp[i]);
1104 xfs_defer_restore_resources(tp, &dfc->dfc_held);
1105 memcpy(dres, &dfc->dfc_held, sizeof(struct xfs_defer_resources));
1109 list_splice_init(&dfc->dfc_dfops, &tp->t_dfops);
1110 tp->t_flags |= dfc->dfc_tpflags;
1112 kfree(dfc);