Lines Matching refs:bip

68 	struct xfs_buf_log_item		*bip,
73 struct xfs_buf *bp = bip->bli_buf;
143 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
146 ASSERT(atomic_read(&bip->bli_refcount) > 0);
147 if (bip->bli_flags & XFS_BLI_STALE) {
153 trace_xfs_buf_item_size_stale(bip);
154 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL);
155 *nvecs += bip->bli_format_count;
156 for (i = 0; i < bip->bli_format_count; i++) {
157 *nbytes += xfs_buf_log_format_size(&bip->bli_formats[i]);
162 ASSERT(bip->bli_flags & XFS_BLI_LOGGED);
164 if (bip->bli_flags & XFS_BLI_ORDERED) {
170 trace_xfs_buf_item_size_ordered(bip);
184 for (i = 0; i < bip->bli_format_count; i++) {
185 xfs_buf_item_size_segment(bip, &bip->bli_formats[i],
188 trace_xfs_buf_item_size(bip);
220 struct xfs_buf_log_item *bip,
226 struct xfs_buf *bp = bip->bli_buf;
234 blfp->blf_flags = bip->__bli_format.blf_flags;
244 if (!(bip->bli_flags & XFS_BLI_STALE) && first_bit == -1) {
255 if (bip->bli_flags & XFS_BLI_STALE) {
261 trace_xfs_buf_item_format_stale(bip);
319 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
320 struct xfs_buf *bp = bip->bli_buf;
325 ASSERT(atomic_read(&bip->bli_refcount) > 0);
326 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) ||
327 (bip->bli_flags & XFS_BLI_STALE));
328 ASSERT((bip->bli_flags & XFS_BLI_STALE) ||
329 (xfs_blft_from_flags(&bip->__bli_format) > XFS_BLFT_UNKNOWN_BUF
330 && xfs_blft_from_flags(&bip->__bli_format) < XFS_BLFT_MAX_BUF));
331 ASSERT(!(bip->bli_flags & XFS_BLI_ORDERED) ||
332 (bip->bli_flags & XFS_BLI_STALE));
349 if (bip->bli_flags & XFS_BLI_INODE_BUF) {
351 !((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) &&
353 bip->__bli_format.blf_flags |= XFS_BLF_INODE_BUF;
354 bip->bli_flags &= ~XFS_BLI_INODE_BUF;
357 for (i = 0; i < bip->bli_format_count; i++) {
358 xfs_buf_item_format_segment(bip, lv, &vecp, offset,
359 &bip->bli_formats[i]);
366 trace_xfs_buf_item_format(bip);
382 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
384 ASSERT(atomic_read(&bip->bli_refcount) > 0);
385 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) ||
386 (bip->bli_flags & XFS_BLI_ORDERED) ||
387 (bip->bli_flags & XFS_BLI_STALE));
389 trace_xfs_buf_item_pin(bip);
391 atomic_inc(&bip->bli_refcount);
392 atomic_inc(&bip->bli_buf->b_pin_count);
404 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
405 xfs_buf_t *bp = bip->bli_buf;
406 int stale = bip->bli_flags & XFS_BLI_STALE;
409 ASSERT(bp->b_log_item == bip);
410 ASSERT(atomic_read(&bip->bli_refcount) > 0);
412 trace_xfs_buf_item_unpin(bip);
423 freed = atomic_dec_and_test(&bip->bli_refcount);
434 ASSERT(bip->bli_flags & XFS_BLI_STALE);
437 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL);
441 trace_xfs_buf_item_unpin_stale(bip);
449 if (bip->bli_flags & XFS_BLI_STALE_INODE) {
476 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
477 struct xfs_buf *bp = bip->bli_buf;
495 ASSERT(!(bip->bli_flags & XFS_BLI_STALE));
497 trace_xfs_buf_item_push(bip);
521 struct xfs_buf_log_item *bip)
523 struct xfs_log_item *lip = &bip->bli_item;
528 if (!atomic_dec_and_test(&bip->bli_refcount))
539 dirty = bip->bli_flags & XFS_BLI_DIRTY;
551 xfs_buf_item_relse(bip->bli_buf);
578 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
579 struct xfs_buf *bp = bip->bli_buf;
581 bool hold = bip->bli_flags & XFS_BLI_HOLD;
582 bool stale = bip->bli_flags & XFS_BLI_STALE;
584 bool ordered = bip->bli_flags & XFS_BLI_ORDERED;
585 bool dirty = bip->bli_flags & XFS_BLI_DIRTY;
590 trace_xfs_buf_item_release(bip);
596 ASSERT((!ordered && dirty == xfs_buf_item_dirty_format(bip)) ||
597 (ordered && dirty && !xfs_buf_item_dirty_format(bip)));
598 ASSERT(!stale || (bip->__bli_format.blf_flags & XFS_BLF_CANCEL));
605 bip->bli_flags &= ~(XFS_BLI_LOGGED | XFS_BLI_HOLD | XFS_BLI_ORDERED);
613 released = xfs_buf_item_put(bip);
651 struct xfs_buf_log_item *bip = BUF_ITEM(lip);
653 trace_xfs_buf_item_committed(bip);
655 if ((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) && lip->li_lsn != 0)
673 struct xfs_buf_log_item *bip,
676 ASSERT(bip->bli_formats == NULL);
677 bip->bli_format_count = count;
680 bip->bli_formats = &bip->__bli_format;
684 bip->bli_formats = kmem_zalloc(count * sizeof(struct xfs_buf_log_format),
690 struct xfs_buf_log_item *bip)
692 if (bip->bli_formats != &bip->__bli_format) {
693 kmem_free(bip->bli_formats);
694 bip->bli_formats = NULL;
708 struct xfs_buf_log_item *bip = bp->b_log_item;
719 if (bip) {
720 ASSERT(bip->bli_item.li_type == XFS_LI_BUF);
722 ASSERT(bip->bli_buf == bp);
726 bip = kmem_cache_zalloc(xfs_buf_item_zone, GFP_KERNEL | __GFP_NOFAIL);
727 xfs_log_item_init(mp, &bip->bli_item, XFS_LI_BUF, &xfs_buf_item_ops);
728 bip->bli_buf = bp;
739 xfs_buf_item_get_format(bip, bp->b_map_count);
741 for (i = 0; i < bip->bli_format_count; i++) {
747 kmem_cache_free(xfs_buf_item_zone, bip);
755 bip->bli_formats[i].blf_type = XFS_LI_BUF;
756 bip->bli_formats[i].blf_blkno = bp->b_maps[i].bm_bn;
757 bip->bli_formats[i].blf_len = bp->b_maps[i].bm_len;
758 bip->bli_formats[i].blf_map_size = map_size;
761 bp->b_log_item = bip;
857 struct xfs_buf_log_item *bip,
864 struct xfs_buf *bp = bip->bli_buf;
870 for (i = 0; i < bip->bli_format_count; i++) {
892 &bip->bli_formats[i].blf_data_map[0]);
905 struct xfs_buf_log_item *bip)
909 for (i = 0; i < bip->bli_format_count; i++) {
910 if (!xfs_bitmap_empty(bip->bli_formats[i].blf_data_map,
911 bip->bli_formats[i].blf_map_size))
920 struct xfs_buf_log_item *bip)
922 xfs_buf_item_free_format(bip);
923 kmem_free(bip->bli_item.li_lv_shadow);
924 kmem_cache_free(xfs_buf_item_zone, bip);
934 struct xfs_buf_log_item *bip = bp->b_log_item;
937 ASSERT(!test_bit(XFS_LI_IN_AIL, &bip->bli_item.li_flags));
941 xfs_buf_item_free(bip);