Lines Matching refs:bip

87 	struct xfs_buf_log_item		*bip,
93 struct xfs_buf *bp = bip->bli_buf;
193 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
194 struct xfs_buf *bp = bip->bli_buf;
199 ASSERT(atomic_read(&bip->bli_refcount) > 0);
200 if (bip->bli_flags & XFS_BLI_STALE) {
206 trace_xfs_buf_item_size_stale(bip);
207 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL);
208 *nvecs += bip->bli_format_count;
209 for (i = 0; i < bip->bli_format_count; i++) {
210 *nbytes += xfs_buf_log_format_size(&bip->bli_formats[i]);
215 ASSERT(bip->bli_flags & XFS_BLI_LOGGED);
217 if (bip->bli_flags & XFS_BLI_ORDERED) {
223 trace_xfs_buf_item_size_ordered(bip);
238 for (i = 0; i < bip->bli_format_count; i++) {
239 xfs_buf_item_size_segment(bip, &bip->bli_formats[i], offset,
250 trace_xfs_buf_item_size(bip);
270 struct xfs_buf_log_item *bip,
276 struct xfs_buf *bp = bip->bli_buf;
284 blfp->blf_flags = bip->__bli_format.blf_flags;
294 if (!(bip->bli_flags & XFS_BLI_STALE) && first_bit == -1) {
305 if (bip->bli_flags & XFS_BLI_STALE) {
311 trace_xfs_buf_item_format_stale(bip);
401 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
402 struct xfs_buf *bp = bip->bli_buf;
407 ASSERT(atomic_read(&bip->bli_refcount) > 0);
408 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) ||
409 (bip->bli_flags & XFS_BLI_STALE));
410 ASSERT((bip->bli_flags & XFS_BLI_STALE) ||
411 (xfs_blft_from_flags(&bip->__bli_format) > XFS_BLFT_UNKNOWN_BUF
412 && xfs_blft_from_flags(&bip->__bli_format) < XFS_BLFT_MAX_BUF));
413 ASSERT(!(bip->bli_flags & XFS_BLI_ORDERED) ||
414 (bip->bli_flags & XFS_BLI_STALE));
431 if (bip->bli_flags & XFS_BLI_INODE_BUF) {
433 !((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) &&
435 bip->__bli_format.blf_flags |= XFS_BLF_INODE_BUF;
436 bip->bli_flags &= ~XFS_BLI_INODE_BUF;
439 for (i = 0; i < bip->bli_format_count; i++) {
440 xfs_buf_item_format_segment(bip, lv, &vecp, offset,
441 &bip->bli_formats[i]);
448 trace_xfs_buf_item_format(bip);
472 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
474 ASSERT(atomic_read(&bip->bli_refcount) > 0);
475 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) ||
476 (bip->bli_flags & XFS_BLI_ORDERED) ||
477 (bip->bli_flags & XFS_BLI_STALE));
479 trace_xfs_buf_item_pin(bip);
481 xfs_buf_hold(bip->bli_buf);
482 atomic_inc(&bip->bli_refcount);
483 atomic_inc(&bip->bli_buf->b_pin_count);
511 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
512 struct xfs_buf *bp = bip->bli_buf;
513 int stale = bip->bli_flags & XFS_BLI_STALE;
516 ASSERT(bp->b_log_item == bip);
517 ASSERT(atomic_read(&bip->bli_refcount) > 0);
519 trace_xfs_buf_item_unpin(bip);
521 freed = atomic_dec_and_test(&bip->bli_refcount);
535 ASSERT(bip->bli_flags & XFS_BLI_STALE);
538 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL);
542 trace_xfs_buf_item_unpin_stale(bip);
559 if (bip->bli_flags & XFS_BLI_STALE_INODE) {
600 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
601 struct xfs_buf *bp = bip->bli_buf;
619 ASSERT(!(bip->bli_flags & XFS_BLI_STALE));
621 trace_xfs_buf_item_push(bip);
645 struct xfs_buf_log_item *bip)
647 struct xfs_log_item *lip = &bip->bli_item;
652 if (!atomic_dec_and_test(&bip->bli_refcount))
663 dirty = bip->bli_flags & XFS_BLI_DIRTY;
675 xfs_buf_item_relse(bip->bli_buf);
702 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
703 struct xfs_buf *bp = bip->bli_buf;
705 bool hold = bip->bli_flags & XFS_BLI_HOLD;
706 bool stale = bip->bli_flags & XFS_BLI_STALE;
708 bool ordered = bip->bli_flags & XFS_BLI_ORDERED;
709 bool dirty = bip->bli_flags & XFS_BLI_DIRTY;
714 trace_xfs_buf_item_release(bip);
720 ASSERT((!ordered && dirty == xfs_buf_item_dirty_format(bip)) ||
721 (ordered && dirty && !xfs_buf_item_dirty_format(bip)));
722 ASSERT(!stale || (bip->__bli_format.blf_flags & XFS_BLF_CANCEL));
729 bip->bli_flags &= ~(XFS_BLI_LOGGED | XFS_BLI_HOLD | XFS_BLI_ORDERED);
737 released = xfs_buf_item_put(bip);
775 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
777 trace_xfs_buf_item_committed(bip);
779 if ((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) && lip->li_lsn != 0)
797 struct xfs_buf_log_item *bip,
800 ASSERT(bip->bli_formats == NULL);
801 bip->bli_format_count = count;
804 bip->bli_formats = &bip->__bli_format;
808 bip->bli_formats = kzalloc(count * sizeof(struct xfs_buf_log_format),
814 struct xfs_buf_log_item *bip)
816 if (bip->bli_formats != &bip->__bli_format) {
817 kfree(bip->bli_formats);
818 bip->bli_formats = NULL;
832 struct xfs_buf_log_item *bip = bp->b_log_item;
843 if (bip) {
844 ASSERT(bip->bli_item.li_type == XFS_LI_BUF);
846 ASSERT(bip->bli_buf == bp);
850 bip = kmem_cache_zalloc(xfs_buf_item_cache, GFP_KERNEL | __GFP_NOFAIL);
851 xfs_log_item_init(mp, &bip->bli_item, XFS_LI_BUF, &xfs_buf_item_ops);
852 bip->bli_buf = bp;
863 xfs_buf_item_get_format(bip, bp->b_map_count);
865 for (i = 0; i < bip->bli_format_count; i++) {
871 kmem_cache_free(xfs_buf_item_cache, bip);
879 bip->bli_formats[i].blf_type = XFS_LI_BUF;
880 bip->bli_formats[i].blf_blkno = bp->b_maps[i].bm_bn;
881 bip->bli_formats[i].blf_len = bp->b_maps[i].bm_len;
882 bip->bli_formats[i].blf_map_size = map_size;
885 bp->b_log_item = bip;
981 struct xfs_buf_log_item *bip,
988 struct xfs_buf *bp = bip->bli_buf;
994 for (i = 0; i < bip->bli_format_count; i++) {
1016 &bip->bli_formats[i].blf_data_map[0]);
1029 struct xfs_buf_log_item *bip)
1033 for (i = 0; i < bip->bli_format_count; i++) {
1034 if (!xfs_bitmap_empty(bip->bli_formats[i].blf_data_map,
1035 bip->bli_formats[i].blf_map_size))
1044 struct xfs_buf_log_item *bip)
1046 xfs_buf_item_free_format(bip);
1047 kvfree(bip->bli_item.li_lv_shadow);
1048 kmem_cache_free(xfs_buf_item_cache, bip);
1058 struct xfs_buf_log_item *bip = bp->b_log_item;
1061 ASSERT(!test_bit(XFS_LI_IN_AIL, &bip->bli_item.li_flags));
1063 if (atomic_read(&bip->bli_refcount))
1067 xfs_buf_item_free(bip);