Lines Matching full:lv
281 struct xfs_log_vec *lv; in xlog_cil_alloc_shadow_bufs() local
343 lv = xlog_kvmalloc(buf_size); in xlog_cil_alloc_shadow_bufs()
345 memset(lv, 0, xlog_cil_iovec_space(niovecs)); in xlog_cil_alloc_shadow_bufs()
347 INIT_LIST_HEAD(&lv->lv_list); in xlog_cil_alloc_shadow_bufs()
348 lv->lv_item = lip; in xlog_cil_alloc_shadow_bufs()
349 lv->lv_size = buf_size; in xlog_cil_alloc_shadow_bufs()
351 lv->lv_buf_len = XFS_LOG_VEC_ORDERED; in xlog_cil_alloc_shadow_bufs()
353 lv->lv_iovecp = (struct xfs_log_iovec *)&lv[1]; in xlog_cil_alloc_shadow_bufs()
354 lip->li_lv_shadow = lv; in xlog_cil_alloc_shadow_bufs()
357 lv = lip->li_lv_shadow; in xlog_cil_alloc_shadow_bufs()
359 lv->lv_buf_len = XFS_LOG_VEC_ORDERED; in xlog_cil_alloc_shadow_bufs()
361 lv->lv_buf_len = 0; in xlog_cil_alloc_shadow_bufs()
362 lv->lv_bytes = 0; in xlog_cil_alloc_shadow_bufs()
365 /* Ensure the lv is set up according to ->iop_size */ in xlog_cil_alloc_shadow_bufs()
366 lv->lv_niovecs = niovecs; in xlog_cil_alloc_shadow_bufs()
369 lv->lv_buf = (char *)lv + xlog_cil_iovec_space(niovecs); in xlog_cil_alloc_shadow_bufs()
381 struct xfs_log_vec *lv, in xfs_cil_prepare_item() argument
385 /* Account for the new LV being passed in */ in xfs_cil_prepare_item()
386 if (lv->lv_buf_len != XFS_LOG_VEC_ORDERED) in xfs_cil_prepare_item()
387 *diff_len += lv->lv_bytes; in xfs_cil_prepare_item()
390 * If there is no old LV, this is the first time we've seen the item in in xfs_cil_prepare_item()
397 if (lv->lv_item->li_ops->iop_pin) in xfs_cil_prepare_item()
398 lv->lv_item->li_ops->iop_pin(lv->lv_item); in xfs_cil_prepare_item()
399 lv->lv_item->li_lv_shadow = NULL; in xfs_cil_prepare_item()
400 } else if (old_lv != lv) { in xfs_cil_prepare_item()
401 ASSERT(lv->lv_buf_len != XFS_LOG_VEC_ORDERED); in xfs_cil_prepare_item()
404 lv->lv_item->li_lv_shadow = old_lv; in xfs_cil_prepare_item()
408 lv->lv_item->li_lv = lv; in xfs_cil_prepare_item()
416 if (!lv->lv_item->li_seq) in xfs_cil_prepare_item()
417 lv->lv_item->li_seq = log->l_cilp->xc_ctx->sequence; in xfs_cil_prepare_item()
430 * dependent on the current state of the vector in the CIL - the shadow lv is
432 * use that if we can't reuse the existing lv. If we can't reuse the existing
433 * lv, then simple swap it out for the shadow lv. We don't free it - that is
463 struct xfs_log_vec *lv; in xlog_cil_insert_format_items() local
474 * the shadow lv on the log item. in xlog_cil_insert_format_items()
488 lv = lip->li_lv; in xlog_cil_insert_format_items()
497 *diff_len -= lv->lv_bytes; in xlog_cil_insert_format_items()
499 /* Ensure the lv is set up according to ->iop_size */ in xlog_cil_insert_format_items()
500 lv->lv_niovecs = shadow->lv_niovecs; in xlog_cil_insert_format_items()
502 /* reset the lv buffer information for new formatting */ in xlog_cil_insert_format_items()
503 lv->lv_buf_len = 0; in xlog_cil_insert_format_items()
504 lv->lv_bytes = 0; in xlog_cil_insert_format_items()
505 lv->lv_buf = (char *)lv + in xlog_cil_insert_format_items()
506 xlog_cil_iovec_space(lv->lv_niovecs); in xlog_cil_insert_format_items()
509 lv = shadow; in xlog_cil_insert_format_items()
510 lv->lv_item = lip; in xlog_cil_insert_format_items()
518 ASSERT(IS_ALIGNED((unsigned long)lv->lv_buf, sizeof(uint64_t))); in xlog_cil_insert_format_items()
519 lip->li_ops->iop_format(lip, lv); in xlog_cil_insert_format_items()
521 xfs_cil_prepare_item(log, lv, old_lv, diff_len); in xlog_cil_insert_format_items()
701 struct xfs_log_vec *lv; in xlog_cil_free_logvec() local
704 lv = list_first_entry(lv_chain, struct xfs_log_vec, lv_list); in xlog_cil_free_logvec()
705 list_del_init(&lv->lv_list); in xlog_cil_free_logvec()
706 kmem_free(lv); in xlog_cil_free_logvec()
1067 struct xfs_log_vec *lv; in xlog_cil_build_lv_chain() local
1078 lv = item->li_lv; in xlog_cil_build_lv_chain()
1079 lv->lv_order_id = item->li_order_id; in xlog_cil_build_lv_chain()
1082 if (lv->lv_buf_len != XFS_LOG_VEC_ORDERED) in xlog_cil_build_lv_chain()
1083 *num_bytes += lv->lv_bytes; in xlog_cil_build_lv_chain()
1084 *num_iovecs += lv->lv_niovecs; in xlog_cil_build_lv_chain()
1085 list_add_tail(&lv->lv_list, &ctx->lv_chain); in xlog_cil_build_lv_chain()
1251 * Add the lvhdr to the head of the lv chain we pass to xlog_write() so in xlog_cil_push_work()