Lines Matching refs:ruip
36 struct xfs_rui_log_item *ruip) in xfs_rui_item_free() argument
38 if (ruip->rui_format.rui_nextents > XFS_RUI_MAX_FAST_EXTENTS) in xfs_rui_item_free()
39 kmem_free(ruip); in xfs_rui_item_free()
41 kmem_cache_free(xfs_rui_zone, ruip); in xfs_rui_item_free()
53 struct xfs_rui_log_item *ruip) in xfs_rui_release() argument
55 ASSERT(atomic_read(&ruip->rui_refcount) > 0); in xfs_rui_release()
56 if (atomic_dec_and_test(&ruip->rui_refcount)) { in xfs_rui_release()
57 xfs_trans_ail_delete(&ruip->rui_item, SHUTDOWN_LOG_IO_ERROR); in xfs_rui_release()
58 xfs_rui_item_free(ruip); in xfs_rui_release()
68 struct xfs_rui_log_item *ruip = RUI_ITEM(lip); in xfs_rui_item_size() local
71 *nbytes += xfs_rui_log_format_sizeof(ruip->rui_format.rui_nextents); in xfs_rui_item_size()
86 struct xfs_rui_log_item *ruip = RUI_ITEM(lip); in xfs_rui_item_format() local
89 ASSERT(atomic_read(&ruip->rui_next_extent) == in xfs_rui_item_format()
90 ruip->rui_format.rui_nextents); in xfs_rui_item_format()
92 ruip->rui_format.rui_type = XFS_LI_RUI; in xfs_rui_item_format()
93 ruip->rui_format.rui_size = 1; in xfs_rui_item_format()
95 xlog_copy_iovec(lv, &vecp, XLOG_REG_TYPE_RUI_FORMAT, &ruip->rui_format, in xfs_rui_item_format()
96 xfs_rui_log_format_sizeof(ruip->rui_format.rui_nextents)); in xfs_rui_item_format()
112 struct xfs_rui_log_item *ruip = RUI_ITEM(lip); in xfs_rui_item_unpin() local
114 xfs_rui_release(ruip); in xfs_rui_item_unpin()
138 struct xfs_rui_log_item *ruip; in xfs_rui_init() local
142 ruip = kmem_zalloc(xfs_rui_log_item_sizeof(nextents), 0); in xfs_rui_init()
144 ruip = kmem_cache_zalloc(xfs_rui_zone, in xfs_rui_init()
147 xfs_log_item_init(mp, &ruip->rui_item, XFS_LI_RUI, &xfs_rui_item_ops); in xfs_rui_init()
148 ruip->rui_format.rui_nextents = nextents; in xfs_rui_init()
149 ruip->rui_format.rui_id = (uintptr_t)(void *)ruip; in xfs_rui_init()
150 atomic_set(&ruip->rui_next_extent, 0); in xfs_rui_init()
151 atomic_set(&ruip->rui_refcount, 2); in xfs_rui_init()
153 return ruip; in xfs_rui_init()
243 struct xfs_rui_log_item *ruip) in xfs_trans_get_rud() argument
250 rudp->rud_ruip = ruip; in xfs_trans_get_rud()
251 rudp->rud_format.rud_rui_id = ruip->rui_format.rui_id; in xfs_trans_get_rud()
357 struct xfs_rui_log_item *ruip, in xfs_rmap_update_log_item() argument
364 set_bit(XFS_LI_DIRTY, &ruip->rui_item.li_flags); in xfs_rmap_update_log_item()
371 next_extent = atomic_inc_return(&ruip->rui_next_extent) - 1; in xfs_rmap_update_log_item()
372 ASSERT(next_extent < ruip->rui_format.rui_nextents); in xfs_rmap_update_log_item()
373 map = &ruip->rui_format.rui_extents[next_extent]; in xfs_rmap_update_log_item()
390 struct xfs_rui_log_item *ruip = xfs_rui_init(mp, count); in xfs_rmap_update_create_intent() local
395 xfs_trans_add_item(tp, &ruip->rui_item); in xfs_rmap_update_create_intent()
399 xfs_rmap_update_log_item(tp, ruip, rmap); in xfs_rmap_update_create_intent()
400 return &ruip->rui_item; in xfs_rmap_update_create_intent()
472 struct xfs_rui_log_item *ruip = RUI_ITEM(lip); in xfs_rui_item_recover() local
491 for (i = 0; i < ruip->rui_format.rui_nextents; i++) { in xfs_rui_item_recover()
492 rmap = &ruip->rui_format.rui_extents[i]; in xfs_rui_item_recover()
522 rudp = xfs_trans_get_rud(tp, ruip); in xfs_rui_item_recover()
524 for (i = 0; i < ruip->rui_format.rui_nextents; i++) { in xfs_rui_item_recover()
525 rmap = &ruip->rui_format.rui_extents[i]; in xfs_rui_item_recover()
593 struct xfs_rui_log_item *ruip; in xfs_rui_item_relog() local
604 ruip = xfs_rui_init(tp->t_mountp, count); in xfs_rui_item_relog()
605 memcpy(ruip->rui_format.rui_extents, extp, count * sizeof(*extp)); in xfs_rui_item_relog()
606 atomic_set(&ruip->rui_next_extent, count); in xfs_rui_item_relog()
607 xfs_trans_add_item(tp, &ruip->rui_item); in xfs_rui_item_relog()
608 set_bit(XFS_LI_DIRTY, &ruip->rui_item.li_flags); in xfs_rui_item_relog()
609 return &ruip->rui_item; in xfs_rui_item_relog()
638 struct xfs_rui_log_item *ruip; in xlog_recover_rui_commit_pass2() local
643 ruip = xfs_rui_init(mp, rui_formatp->rui_nextents); in xlog_recover_rui_commit_pass2()
644 error = xfs_rui_copy_format(&item->ri_buf[0], &ruip->rui_format); in xlog_recover_rui_commit_pass2()
646 xfs_rui_item_free(ruip); in xlog_recover_rui_commit_pass2()
649 atomic_set(&ruip->rui_next_extent, rui_formatp->rui_nextents); in xlog_recover_rui_commit_pass2()
654 xfs_trans_ail_insert(log->l_ailp, &ruip->rui_item, lsn); in xlog_recover_rui_commit_pass2()
655 xfs_rui_release(ruip); in xlog_recover_rui_commit_pass2()