Lines Matching full:lv
131 struct xfs_log_vec *lv; in xlog_cil_alloc_shadow_bufs() local
188 lv = kmem_alloc_large(buf_size, KM_NOFS); in xlog_cil_alloc_shadow_bufs()
189 memset(lv, 0, xlog_cil_iovec_space(niovecs)); in xlog_cil_alloc_shadow_bufs()
191 lv->lv_item = lip; in xlog_cil_alloc_shadow_bufs()
192 lv->lv_size = buf_size; in xlog_cil_alloc_shadow_bufs()
194 lv->lv_buf_len = XFS_LOG_VEC_ORDERED; in xlog_cil_alloc_shadow_bufs()
196 lv->lv_iovecp = (struct xfs_log_iovec *)&lv[1]; in xlog_cil_alloc_shadow_bufs()
197 lip->li_lv_shadow = lv; in xlog_cil_alloc_shadow_bufs()
200 lv = lip->li_lv_shadow; in xlog_cil_alloc_shadow_bufs()
202 lv->lv_buf_len = XFS_LOG_VEC_ORDERED; in xlog_cil_alloc_shadow_bufs()
204 lv->lv_buf_len = 0; in xlog_cil_alloc_shadow_bufs()
205 lv->lv_bytes = 0; in xlog_cil_alloc_shadow_bufs()
206 lv->lv_next = NULL; in xlog_cil_alloc_shadow_bufs()
209 /* Ensure the lv is set up according to ->iop_size */ in xlog_cil_alloc_shadow_bufs()
210 lv->lv_niovecs = niovecs; in xlog_cil_alloc_shadow_bufs()
213 lv->lv_buf = (char *)lv + xlog_cil_iovec_space(niovecs); in xlog_cil_alloc_shadow_bufs()
226 struct xfs_log_vec *lv, in xfs_cil_prepare_item() argument
231 /* Account for the new LV being passed in */ in xfs_cil_prepare_item()
232 if (lv->lv_buf_len != XFS_LOG_VEC_ORDERED) { in xfs_cil_prepare_item()
233 *diff_len += lv->lv_bytes; in xfs_cil_prepare_item()
234 *diff_iovecs += lv->lv_niovecs; in xfs_cil_prepare_item()
238 * If there is no old LV, this is the first time we've seen the item in in xfs_cil_prepare_item()
245 if (lv->lv_item->li_ops->iop_pin) in xfs_cil_prepare_item()
246 lv->lv_item->li_ops->iop_pin(lv->lv_item); in xfs_cil_prepare_item()
247 lv->lv_item->li_lv_shadow = NULL; in xfs_cil_prepare_item()
248 } else if (old_lv != lv) { in xfs_cil_prepare_item()
249 ASSERT(lv->lv_buf_len != XFS_LOG_VEC_ORDERED); in xfs_cil_prepare_item()
253 lv->lv_item->li_lv_shadow = old_lv; in xfs_cil_prepare_item()
257 lv->lv_item->li_lv = lv; in xfs_cil_prepare_item()
265 if (!lv->lv_item->li_seq) in xfs_cil_prepare_item()
266 lv->lv_item->li_seq = log->l_cilp->xc_ctx->sequence; in xfs_cil_prepare_item()
279 * dependent on the current state of the vector in the CIL - the shadow lv is
281 * use that if we can't reuse the existing lv. If we can't reuse the existing
282 * lv, then simple swap it out for the shadow lv. We don't free it - that is
314 struct xfs_log_vec *lv; in xlog_cil_insert_format_items() local
325 * the shadow lv on the log item. in xlog_cil_insert_format_items()
339 lv = lip->li_lv; in xlog_cil_insert_format_items()
340 lv->lv_next = NULL; in xlog_cil_insert_format_items()
349 *diff_iovecs -= lv->lv_niovecs; in xlog_cil_insert_format_items()
350 *diff_len -= lv->lv_bytes; in xlog_cil_insert_format_items()
352 /* Ensure the lv is set up according to ->iop_size */ in xlog_cil_insert_format_items()
353 lv->lv_niovecs = shadow->lv_niovecs; in xlog_cil_insert_format_items()
355 /* reset the lv buffer information for new formatting */ in xlog_cil_insert_format_items()
356 lv->lv_buf_len = 0; in xlog_cil_insert_format_items()
357 lv->lv_bytes = 0; in xlog_cil_insert_format_items()
358 lv->lv_buf = (char *)lv + in xlog_cil_insert_format_items()
359 xlog_cil_iovec_space(lv->lv_niovecs); in xlog_cil_insert_format_items()
362 lv = shadow; in xlog_cil_insert_format_items()
363 lv->lv_item = lip; in xlog_cil_insert_format_items()
371 ASSERT(IS_ALIGNED((unsigned long)lv->lv_buf, sizeof(uint64_t))); in xlog_cil_insert_format_items()
372 lip->li_ops->iop_format(lip, lv); in xlog_cil_insert_format_items()
374 xfs_cil_prepare_item(log, lv, old_lv, diff_len, diff_iovecs); in xlog_cil_insert_format_items()
490 struct xfs_log_vec *lv; in xlog_cil_free_logvec() local
492 for (lv = log_vector; lv; ) { in xlog_cil_free_logvec()
493 struct xfs_log_vec *next = lv->lv_next; in xlog_cil_free_logvec()
494 kmem_free(lv); in xlog_cil_free_logvec()
495 lv = next; in xlog_cil_free_logvec()
647 struct xfs_log_vec *lv; in xlog_cil_push_work() local
732 lv = NULL; in xlog_cil_push_work()
743 lv->lv_next = item->li_lv; in xlog_cil_push_work()
744 lv = item->li_lv; in xlog_cil_push_work()
746 num_iovecs += lv->lv_niovecs; in xlog_cil_push_work()