• Home
  • Raw
  • Download

Lines Matching refs:bip

54 	xfs_buf_log_item_t	*bip,  in xfs_buf_item_log_debug()  argument
67 ASSERT(bip->bli_logged != NULL); in xfs_buf_item_log_debug()
70 bfset(bip->bli_logged, first, nbytes); in xfs_buf_item_log_debug()
75 wordp = &(bip->bli_format.blf_data_map[word_num]); in xfs_buf_item_log_debug()
93 xfs_buf_log_item_t *bip = bp->b_fspriv; in xfs_buf_item_flush_log_debug() local
96 if (bip == NULL || (bip->bli_item.li_type != XFS_LI_BUF)) in xfs_buf_item_flush_log_debug()
99 ASSERT(bip->bli_logged != NULL); in xfs_buf_item_flush_log_debug()
101 bfset(bip->bli_logged, first, nbytes); in xfs_buf_item_flush_log_debug()
115 xfs_buf_log_item_t *bip) in xfs_buf_item_log_check() argument
122 ASSERT(bip->bli_orig != NULL); in xfs_buf_item_log_check()
123 ASSERT(bip->bli_logged != NULL); in xfs_buf_item_log_check()
125 bp = bip->bli_buf; in xfs_buf_item_log_check()
128 orig = bip->bli_orig; in xfs_buf_item_log_check()
131 if (orig[x] != buffer[x] && !btst(bip->bli_logged, x)) { in xfs_buf_item_log_check()
134 __func__, bip, bp, orig, x); in xfs_buf_item_log_check()
160 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_size() local
161 struct xfs_buf *bp = bip->bli_buf; in xfs_buf_item_size()
166 ASSERT(atomic_read(&bip->bli_refcount) > 0); in xfs_buf_item_size()
167 if (bip->bli_flags & XFS_BLI_STALE) { in xfs_buf_item_size()
173 trace_xfs_buf_item_size_stale(bip); in xfs_buf_item_size()
174 ASSERT(bip->bli_format.blf_flags & XFS_BLF_CANCEL); in xfs_buf_item_size()
178 ASSERT(bip->bli_flags & XFS_BLI_LOGGED); in xfs_buf_item_size()
180 last_bit = xfs_next_bit(bip->bli_format.blf_data_map, in xfs_buf_item_size()
181 bip->bli_format.blf_map_size, 0); in xfs_buf_item_size()
191 next_bit = xfs_next_bit(bip->bli_format.blf_data_map, in xfs_buf_item_size()
192 bip->bli_format.blf_map_size, in xfs_buf_item_size()
214 trace_xfs_buf_item_size(bip); in xfs_buf_item_size()
229 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_format() local
230 struct xfs_buf *bp = bip->bli_buf; in xfs_buf_item_format()
239 ASSERT(atomic_read(&bip->bli_refcount) > 0); in xfs_buf_item_format()
240 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) || in xfs_buf_item_format()
241 (bip->bli_flags & XFS_BLI_STALE)); in xfs_buf_item_format()
252 ((bip->bli_format.blf_map_size - 1) * sizeof(uint))); in xfs_buf_item_format()
253 vecp->i_addr = &bip->bli_format; in xfs_buf_item_format()
266 if (bip->bli_flags & XFS_BLI_INODE_BUF) { in xfs_buf_item_format()
267 if (!((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) && in xfs_buf_item_format()
269 bip->bli_format.blf_flags |= XFS_BLF_INODE_BUF; in xfs_buf_item_format()
270 bip->bli_flags &= ~XFS_BLI_INODE_BUF; in xfs_buf_item_format()
273 if (bip->bli_flags & XFS_BLI_STALE) { in xfs_buf_item_format()
279 trace_xfs_buf_item_format_stale(bip); in xfs_buf_item_format()
280 ASSERT(bip->bli_format.blf_flags & XFS_BLF_CANCEL); in xfs_buf_item_format()
281 bip->bli_format.blf_size = nvecs; in xfs_buf_item_format()
288 first_bit = xfs_next_bit(bip->bli_format.blf_data_map, in xfs_buf_item_format()
289 bip->bli_format.blf_map_size, 0); in xfs_buf_item_format()
300 next_bit = xfs_next_bit(bip->bli_format.blf_data_map, in xfs_buf_item_format()
301 bip->bli_format.blf_map_size, in xfs_buf_item_format()
350 bip->bli_format.blf_size = nvecs; in xfs_buf_item_format()
355 trace_xfs_buf_item_format(bip); in xfs_buf_item_format()
356 xfs_buf_item_log_check(bip); in xfs_buf_item_format()
372 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_pin() local
374 ASSERT(atomic_read(&bip->bli_refcount) > 0); in xfs_buf_item_pin()
375 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) || in xfs_buf_item_pin()
376 (bip->bli_flags & XFS_BLI_STALE)); in xfs_buf_item_pin()
378 trace_xfs_buf_item_pin(bip); in xfs_buf_item_pin()
380 atomic_inc(&bip->bli_refcount); in xfs_buf_item_pin()
381 atomic_inc(&bip->bli_buf->b_pin_count); in xfs_buf_item_pin()
402 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_unpin() local
403 xfs_buf_t *bp = bip->bli_buf; in xfs_buf_item_unpin()
405 int stale = bip->bli_flags & XFS_BLI_STALE; in xfs_buf_item_unpin()
408 ASSERT(bp->b_fspriv == bip); in xfs_buf_item_unpin()
409 ASSERT(atomic_read(&bip->bli_refcount) > 0); in xfs_buf_item_unpin()
411 trace_xfs_buf_item_unpin(bip); in xfs_buf_item_unpin()
413 freed = atomic_dec_and_test(&bip->bli_refcount); in xfs_buf_item_unpin()
419 ASSERT(bip->bli_flags & XFS_BLI_STALE); in xfs_buf_item_unpin()
423 ASSERT(bip->bli_format.blf_flags & XFS_BLF_CANCEL); in xfs_buf_item_unpin()
425 trace_xfs_buf_item_unpin_stale(bip); in xfs_buf_item_unpin()
452 if (bip->bli_flags & XFS_BLI_STALE_INODE) { in xfs_buf_item_unpin()
458 xfs_trans_ail_delete(ailp, (xfs_log_item_t *)bip); in xfs_buf_item_unpin()
478 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_trylock() local
479 struct xfs_buf *bp = bip->bli_buf; in xfs_buf_item_trylock()
489 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); in xfs_buf_item_trylock()
490 trace_xfs_buf_item_trylock(bip); in xfs_buf_item_trylock()
519 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_unlock() local
520 struct xfs_buf *bp = bip->bli_buf; in xfs_buf_item_unlock()
539 hold = bip->bli_flags & XFS_BLI_HOLD; in xfs_buf_item_unlock()
542 bip->bli_flags &= ~(XFS_BLI_LOGGED | XFS_BLI_HOLD); in xfs_buf_item_unlock()
549 if (bip->bli_flags & XFS_BLI_STALE) { in xfs_buf_item_unlock()
550 trace_xfs_buf_item_unlock_stale(bip); in xfs_buf_item_unlock()
551 ASSERT(bip->bli_format.blf_flags & XFS_BLF_CANCEL); in xfs_buf_item_unlock()
553 atomic_dec(&bip->bli_refcount); in xfs_buf_item_unlock()
558 trace_xfs_buf_item_unlock(bip); in xfs_buf_item_unlock()
564 if (xfs_bitmap_empty(bip->bli_format.blf_data_map, in xfs_buf_item_unlock()
565 bip->bli_format.blf_map_size)) in xfs_buf_item_unlock()
568 atomic_dec(&bip->bli_refcount); in xfs_buf_item_unlock()
597 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_committed() local
599 trace_xfs_buf_item_committed(bip); in xfs_buf_item_committed()
601 if ((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) && lip->li_lsn != 0) in xfs_buf_item_committed()
615 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_push() local
616 struct xfs_buf *bp = bip->bli_buf; in xfs_buf_item_push()
618 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); in xfs_buf_item_push()
621 trace_xfs_buf_item_push(bip); in xfs_buf_item_push()
636 struct xfs_buf_log_item *bip = BUF_ITEM(lip); in xfs_buf_item_pushbuf() local
637 struct xfs_buf *bp = bip->bli_buf; in xfs_buf_item_pushbuf()
639 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); in xfs_buf_item_pushbuf()
642 trace_xfs_buf_item_pushbuf(bip); in xfs_buf_item_pushbuf()
686 xfs_buf_log_item_t *bip; in xfs_buf_item_init() local
709 bip = (xfs_buf_log_item_t*)kmem_zone_zalloc(xfs_buf_item_zone, in xfs_buf_item_init()
711 xfs_log_item_init(mp, &bip->bli_item, XFS_LI_BUF, &xfs_buf_item_ops); in xfs_buf_item_init()
712 bip->bli_buf = bp; in xfs_buf_item_init()
714 bip->bli_format.blf_type = XFS_LI_BUF; in xfs_buf_item_init()
715 bip->bli_format.blf_blkno = (__int64_t)XFS_BUF_ADDR(bp); in xfs_buf_item_init()
716 bip->bli_format.blf_len = (ushort)BTOBB(XFS_BUF_COUNT(bp)); in xfs_buf_item_init()
717 bip->bli_format.blf_map_size = map_size; in xfs_buf_item_init()
728 bip->bli_orig = (char *)kmem_alloc(XFS_BUF_COUNT(bp), KM_SLEEP); in xfs_buf_item_init()
729 memcpy(bip->bli_orig, bp->b_addr, XFS_BUF_COUNT(bp)); in xfs_buf_item_init()
730 bip->bli_logged = (char *)kmem_zalloc(XFS_BUF_COUNT(bp) / NBBY, KM_SLEEP); in xfs_buf_item_init()
738 bip->bli_item.li_bio_list = bp->b_fspriv; in xfs_buf_item_init()
739 bp->b_fspriv = bip; in xfs_buf_item_init()
749 xfs_buf_log_item_t *bip, in xfs_buf_item_log() argument
767 bip->bli_flags |= XFS_BLI_DIRTY; in xfs_buf_item_log()
785 wordp = &(bip->bli_format.blf_data_map[word_num]); in xfs_buf_item_log()
829 xfs_buf_item_log_debug(bip, first, last); in xfs_buf_item_log()
839 xfs_buf_log_item_t *bip) in xfs_buf_item_dirty() argument
841 return (bip->bli_flags & XFS_BLI_DIRTY); in xfs_buf_item_dirty()
846 xfs_buf_log_item_t *bip) in xfs_buf_item_free() argument
849 kmem_free(bip->bli_orig); in xfs_buf_item_free()
850 kmem_free(bip->bli_logged); in xfs_buf_item_free()
853 kmem_zone_free(xfs_buf_item_zone, bip); in xfs_buf_item_free()
867 xfs_buf_log_item_t *bip; in xfs_buf_item_relse() local
871 bip = bp->b_fspriv; in xfs_buf_item_relse()
872 bp->b_fspriv = bip->bli_item.li_bio_list; in xfs_buf_item_relse()
877 xfs_buf_item_free(bip); in xfs_buf_item_relse()