Lines Matching full:lv

278 		struct xfs_log_vec *lv;  in xlog_cil_alloc_shadow_bufs()  local
340 lv = xlog_kvmalloc(buf_size); in xlog_cil_alloc_shadow_bufs()
342 memset(lv, 0, xlog_cil_iovec_space(niovecs)); in xlog_cil_alloc_shadow_bufs()
344 INIT_LIST_HEAD(&lv->lv_list); in xlog_cil_alloc_shadow_bufs()
345 lv->lv_item = lip; in xlog_cil_alloc_shadow_bufs()
346 lv->lv_size = buf_size; in xlog_cil_alloc_shadow_bufs()
348 lv->lv_buf_len = XFS_LOG_VEC_ORDERED; in xlog_cil_alloc_shadow_bufs()
350 lv->lv_iovecp = (struct xfs_log_iovec *)&lv[1]; in xlog_cil_alloc_shadow_bufs()
351 lip->li_lv_shadow = lv; in xlog_cil_alloc_shadow_bufs()
354 lv = lip->li_lv_shadow; in xlog_cil_alloc_shadow_bufs()
356 lv->lv_buf_len = XFS_LOG_VEC_ORDERED; in xlog_cil_alloc_shadow_bufs()
358 lv->lv_buf_len = 0; in xlog_cil_alloc_shadow_bufs()
359 lv->lv_bytes = 0; in xlog_cil_alloc_shadow_bufs()
362 /* Ensure the lv is set up according to ->iop_size */ in xlog_cil_alloc_shadow_bufs()
363 lv->lv_niovecs = niovecs; in xlog_cil_alloc_shadow_bufs()
366 lv->lv_buf = (char *)lv + xlog_cil_iovec_space(niovecs); in xlog_cil_alloc_shadow_bufs()
378 struct xfs_log_vec *lv, in xfs_cil_prepare_item() argument
382 /* Account for the new LV being passed in */ in xfs_cil_prepare_item()
383 if (lv->lv_buf_len != XFS_LOG_VEC_ORDERED) in xfs_cil_prepare_item()
384 *diff_len += lv->lv_bytes; in xfs_cil_prepare_item()
387 * If there is no old LV, this is the first time we've seen the item in in xfs_cil_prepare_item()
394 if (lv->lv_item->li_ops->iop_pin) in xfs_cil_prepare_item()
395 lv->lv_item->li_ops->iop_pin(lv->lv_item); in xfs_cil_prepare_item()
396 lv->lv_item->li_lv_shadow = NULL; in xfs_cil_prepare_item()
397 } else if (old_lv != lv) { in xfs_cil_prepare_item()
398 ASSERT(lv->lv_buf_len != XFS_LOG_VEC_ORDERED); in xfs_cil_prepare_item()
401 lv->lv_item->li_lv_shadow = old_lv; in xfs_cil_prepare_item()
405 lv->lv_item->li_lv = lv; in xfs_cil_prepare_item()
413 if (!lv->lv_item->li_seq) in xfs_cil_prepare_item()
414 lv->lv_item->li_seq = log->l_cilp->xc_ctx->sequence; in xfs_cil_prepare_item()
427 * dependent on the current state of the vector in the CIL - the shadow lv is
429 * use that if we can't reuse the existing lv. If we can't reuse the existing
430 * lv, then simple swap it out for the shadow lv. We don't free it - that is
460 struct xfs_log_vec *lv; in xlog_cil_insert_format_items() local
471 * the shadow lv on the log item. in xlog_cil_insert_format_items()
485 lv = lip->li_lv; in xlog_cil_insert_format_items()
494 *diff_len -= lv->lv_bytes; in xlog_cil_insert_format_items()
496 /* Ensure the lv is set up according to ->iop_size */ in xlog_cil_insert_format_items()
497 lv->lv_niovecs = shadow->lv_niovecs; in xlog_cil_insert_format_items()
499 /* reset the lv buffer information for new formatting */ in xlog_cil_insert_format_items()
500 lv->lv_buf_len = 0; in xlog_cil_insert_format_items()
501 lv->lv_bytes = 0; in xlog_cil_insert_format_items()
502 lv->lv_buf = (char *)lv + in xlog_cil_insert_format_items()
503 xlog_cil_iovec_space(lv->lv_niovecs); in xlog_cil_insert_format_items()
506 lv = shadow; in xlog_cil_insert_format_items()
507 lv->lv_item = lip; in xlog_cil_insert_format_items()
515 ASSERT(IS_ALIGNED((unsigned long)lv->lv_buf, sizeof(uint64_t))); in xlog_cil_insert_format_items()
516 lip->li_ops->iop_format(lip, lv); in xlog_cil_insert_format_items()
518 xfs_cil_prepare_item(log, lv, old_lv, diff_len); in xlog_cil_insert_format_items()
698 struct xfs_log_vec *lv; in xlog_cil_free_logvec() local
701 lv = list_first_entry(lv_chain, struct xfs_log_vec, lv_list); in xlog_cil_free_logvec()
702 list_del_init(&lv->lv_list); in xlog_cil_free_logvec()
703 kmem_free(lv); in xlog_cil_free_logvec()
1064 struct xfs_log_vec *lv; in xlog_cil_build_lv_chain() local
1075 lv = item->li_lv; in xlog_cil_build_lv_chain()
1076 lv->lv_order_id = item->li_order_id; in xlog_cil_build_lv_chain()
1079 if (lv->lv_buf_len != XFS_LOG_VEC_ORDERED) in xlog_cil_build_lv_chain()
1080 *num_bytes += lv->lv_bytes; in xlog_cil_build_lv_chain()
1081 *num_iovecs += lv->lv_niovecs; in xlog_cil_build_lv_chain()
1082 list_add_tail(&lv->lv_list, &ctx->lv_chain); in xlog_cil_build_lv_chain()
1248 * Add the lvhdr to the head of the lv chain we pass to xlog_write() so in xlog_cil_push_work()