Lines Matching defs:dres
279 * transaction commits. Caller is responsible for zero-initializing @dres.
283 struct xfs_defer_resources *dres,
290 BUILD_BUG_ON(NBBY * sizeof(dres->dr_ordered) < XFS_DEFER_OPS_NR_BUFS);
298 if (dres->dr_bufs >= XFS_DEFER_OPS_NR_BUFS) {
303 dres->dr_ordered |=
304 (1U << dres->dr_bufs);
307 dres->dr_bp[dres->dr_bufs++] = bli->bli_buf;
314 if (dres->dr_inos >= XFS_DEFER_OPS_NR_INODES) {
320 dres->dr_ip[dres->dr_inos++] = ili->ili_inode;
335 struct xfs_defer_resources *dres)
340 for (i = 0; i < dres->dr_inos; i++)
341 xfs_trans_ijoin(tp, dres->dr_ip[i], 0);
344 for (i = 0; i < dres->dr_bufs; i++) {
345 xfs_trans_bjoin(tp, dres->dr_bp[i]);
346 if (dres->dr_ordered & (1U << i))
347 xfs_trans_ordered_buf(tp, dres->dr_bp[i]);
348 xfs_trans_bhold(tp, dres->dr_bp[i]);
357 struct xfs_defer_resources dres = { };
360 error = xfs_defer_save_resources(&dres, *tpp);
375 xfs_defer_restore_resources(*tpp, &dres);
831 struct xfs_defer_resources *dres)
850 memcpy(dres, &dfc->dfc_held, sizeof(struct xfs_defer_resources));
851 dres->dr_bufs = 0;
863 struct xfs_defer_resources *dres)
867 for (i = 0; i < dres->dr_inos; i++) {
868 xfs_iunlock(dres->dr_ip[i], XFS_ILOCK_EXCL);
869 xfs_irele(dres->dr_ip[i]);
870 dres->dr_ip[i] = NULL;
873 for (i = 0; i < dres->dr_bufs; i++) {
874 xfs_buf_relse(dres->dr_bp[i]);
875 dres->dr_bp[i] = NULL;
878 dres->dr_inos = 0;
879 dres->dr_bufs = 0;
880 dres->dr_ordered = 0;