/linux-4.4.14/block/ |
H A D | bio-integrity.c | 54 struct bio_integrity_payload *bip; bio_integrity_alloc() local 60 bip = kmalloc(sizeof(struct bio_integrity_payload) + bio_integrity_alloc() 64 bip = mempool_alloc(bs->bio_integrity_pool, gfp_mask); bio_integrity_alloc() 68 if (unlikely(!bip)) bio_integrity_alloc() 71 memset(bip, 0, sizeof(*bip)); bio_integrity_alloc() 74 bip->bip_vec = bvec_alloc(gfp_mask, nr_vecs, &idx, bio_integrity_alloc() 76 if (!bip->bip_vec) bio_integrity_alloc() 78 bip->bip_max_vcnt = bvec_nr_vecs(idx); bio_integrity_alloc() 80 bip->bip_vec = bip->bip_inline_vecs; bio_integrity_alloc() 81 bip->bip_max_vcnt = inline_vecs; bio_integrity_alloc() 84 bip->bip_slab = idx; bio_integrity_alloc() 85 bip->bip_bio = bio; bio_integrity_alloc() 86 bio->bi_integrity = bip; bio_integrity_alloc() 89 return bip; bio_integrity_alloc() 91 mempool_free(bip, bs->bio_integrity_pool); bio_integrity_alloc() 98 * @bio: bio containing bip to be freed 105 struct bio_integrity_payload *bip = bio_integrity(bio); bio_integrity_free() local 108 if (bip->bip_flags & BIP_BLOCK_INTEGRITY) bio_integrity_free() 109 kfree(page_address(bip->bip_vec->bv_page) + bio_integrity_free() 110 bip->bip_vec->bv_offset); bio_integrity_free() 113 if (bip->bip_slab != BIO_POOL_NONE) bio_integrity_free() 114 bvec_free(bs->bvec_integrity_pool, bip->bip_vec, bio_integrity_free() 115 bip->bip_slab); bio_integrity_free() 117 mempool_free(bip, bs->bio_integrity_pool); bio_integrity_free() 119 kfree(bip); bio_integrity_free() 138 struct bio_integrity_payload *bip = bio_integrity(bio); bio_integrity_add_page() local 141 if (bip->bip_vcnt >= bip->bip_max_vcnt) { bio_integrity_add_page() 146 iv = bip->bip_vec + bip->bip_vcnt; bio_integrity_add_page() 148 if (bip->bip_vcnt && bio_integrity_add_page() 150 &bip->bip_vec[bip->bip_vcnt - 1], offset)) bio_integrity_add_page() 156 bip->bip_vcnt++; bio_integrity_add_page() 231 struct bio_integrity_payload *bip = bio_integrity(bio); bio_integrity_process() local 233 void *prot_buf = page_address(bip->bip_vec->bv_page) + bio_integrity_process() 234 bip->bip_vec->bv_offset; bio_integrity_process() 238 iter.seed = bip_get_seed(bip); bio_integrity_process() 271 struct bio_integrity_payload *bip; bio_integrity_prep() local 300 bip = bio_integrity_alloc(bio, GFP_NOIO, nr_pages); bio_integrity_prep() 301 if (unlikely(bip == NULL)) { bio_integrity_prep() 307 bip->bip_flags |= BIP_BLOCK_INTEGRITY; bio_integrity_prep() 308 bip->bip_iter.bi_size = len; bio_integrity_prep() 309 bip_set_seed(bip, bio->bi_iter.bi_sector); bio_integrity_prep() 312 bip->bip_flags |= BIP_IP_CHECKSUM; bio_integrity_prep() 342 bip->bip_end_io = bio->bi_end_io; bio_integrity_prep() 364 struct bio_integrity_payload *bip = bio_integrity_verify_fn() local 366 struct bio *bio = bip->bip_bio; bio_integrity_verify_fn() 372 bio->bi_end_io = bip->bip_end_io; bio_integrity_verify_fn() 390 struct bio_integrity_payload *bip = bio_integrity(bio); bio_integrity_endio() local 392 BUG_ON(bip->bip_bio != bio); bio_integrity_endio() 399 bio->bi_end_io = bip->bip_end_io; bio_integrity_endio() 405 INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); bio_integrity_endio() 406 queue_work(kintegrityd_wq, &bip->bip_work); bio_integrity_endio() 421 struct bio_integrity_payload *bip = bio_integrity(bio); bio_integrity_advance() local 425 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, bytes); bio_integrity_advance() 443 struct bio_integrity_payload *bip = bio_integrity(bio); bio_integrity_trim() local 447 bip->bip_iter.bi_size = bio_integrity_bytes(bi, sectors); bio_integrity_trim() 457 * Description: Called to allocate a bip when cloning a bio 463 struct bio_integrity_payload *bip; bio_integrity_clone() local 467 bip = bio_integrity_alloc(bio, gfp_mask, bip_src->bip_vcnt); bio_integrity_clone() 469 if (bip == NULL) bio_integrity_clone() 472 memcpy(bip->bip_vec, bip_src->bip_vec, bio_integrity_clone() 475 bip->bip_vcnt = bip_src->bip_vcnt; bio_integrity_clone() 476 bip->bip_iter = bip_src->bip_iter; bio_integrity_clone()
|
/linux-4.4.14/fs/xfs/ |
H A D | xfs_trans_buf.c | 80 struct xfs_buf_log_item *bip; _xfs_trans_bjoin() local 90 bip = bp->b_fspriv; _xfs_trans_bjoin() 91 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); _xfs_trans_bjoin() 92 ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL)); _xfs_trans_bjoin() 93 ASSERT(!(bip->bli_flags & XFS_BLI_LOGGED)); _xfs_trans_bjoin() 95 bip->bli_recur = 0; _xfs_trans_bjoin() 100 atomic_inc(&bip->bli_refcount); _xfs_trans_bjoin() 105 xfs_trans_add_item(tp, &bip->bli_item); _xfs_trans_bjoin() 142 xfs_buf_log_item_t *bip; xfs_trans_get_buf_map() local 162 bip = bp->b_fspriv; xfs_trans_get_buf_map() 163 ASSERT(bip != NULL); xfs_trans_get_buf_map() 164 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_get_buf_map() 165 bip->bli_recur++; xfs_trans_get_buf_map() 166 trace_xfs_trans_get_buf_recur(bip); xfs_trans_get_buf_map() 196 xfs_buf_log_item_t *bip; xfs_trans_getsb() local 213 bip = bp->b_fspriv; xfs_trans_getsb() 214 ASSERT(bip != NULL); xfs_trans_getsb() 215 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_getsb() 216 bip->bli_recur++; xfs_trans_getsb() 217 trace_xfs_trans_getsb_recur(bip); xfs_trans_getsb() 252 struct xfs_buf_log_item *bip; xfs_trans_read_buf_map() local 282 bip = bp->b_fspriv; xfs_trans_read_buf_map() 283 bip->bli_recur++; xfs_trans_read_buf_map() 285 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_read_buf_map() 286 trace_xfs_trans_read_buf_recur(bip); xfs_trans_read_buf_map() 358 xfs_buf_log_item_t *bip; xfs_trans_brelse() local 370 bip = bp->b_fspriv; xfs_trans_brelse() 371 ASSERT(bip->bli_item.li_type == XFS_LI_BUF); xfs_trans_brelse() 372 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); xfs_trans_brelse() 373 ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL)); xfs_trans_brelse() 374 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_brelse() 376 trace_xfs_trans_brelse(bip); xfs_trans_brelse() 382 if (bip->bli_recur > 0) { xfs_trans_brelse() 383 bip->bli_recur--; xfs_trans_brelse() 391 if (bip->bli_item.li_desc->lid_flags & XFS_LID_DIRTY) xfs_trans_brelse() 400 if (bip->bli_flags & XFS_BLI_STALE) xfs_trans_brelse() 403 ASSERT(!(bip->bli_flags & XFS_BLI_LOGGED)); xfs_trans_brelse() 408 xfs_trans_del_item(&bip->bli_item); xfs_trans_brelse() 415 if (bip->bli_flags & XFS_BLI_HOLD) { xfs_trans_brelse() 416 bip->bli_flags &= ~XFS_BLI_HOLD; xfs_trans_brelse() 422 atomic_dec(&bip->bli_refcount); xfs_trans_brelse() 431 if (!xfs_buf_item_dirty(bip)) { xfs_trans_brelse() 435 ASSERT(atomic_read(&bip->bli_refcount) == 0); xfs_trans_brelse() 436 ASSERT(!(bip->bli_item.li_flags & XFS_LI_IN_AIL)); xfs_trans_brelse() 437 ASSERT(!(bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF)); xfs_trans_brelse() 455 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_trans_bhold() local 458 ASSERT(bip != NULL); xfs_trans_bhold() 459 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); xfs_trans_bhold() 460 ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL)); xfs_trans_bhold() 461 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_bhold() 463 bip->bli_flags |= XFS_BLI_HOLD; xfs_trans_bhold() 464 trace_xfs_trans_bhold(bip); xfs_trans_bhold() 475 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_trans_bhold_release() local 478 ASSERT(bip != NULL); xfs_trans_bhold_release() 479 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); xfs_trans_bhold_release() 480 ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_CANCEL)); xfs_trans_bhold_release() 481 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_bhold_release() 482 ASSERT(bip->bli_flags & XFS_BLI_HOLD); xfs_trans_bhold_release() 484 bip->bli_flags &= ~XFS_BLI_HOLD; xfs_trans_bhold_release() 485 trace_xfs_trans_bhold_release(bip); xfs_trans_bhold_release() 503 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_trans_log_buf() local 506 ASSERT(bip != NULL); xfs_trans_log_buf() 523 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_log_buf() 525 bip->bli_item.li_cb = xfs_buf_iodone; xfs_trans_log_buf() 527 trace_xfs_trans_log_buf(bip); xfs_trans_log_buf() 535 if (bip->bli_flags & XFS_BLI_STALE) { xfs_trans_log_buf() 536 bip->bli_flags &= ~XFS_BLI_STALE; xfs_trans_log_buf() 539 bip->__bli_format.blf_flags &= ~XFS_BLF_CANCEL; xfs_trans_log_buf() 543 bip->bli_item.li_desc->lid_flags |= XFS_LID_DIRTY; xfs_trans_log_buf() 549 bip->bli_flags |= XFS_BLI_DIRTY | XFS_BLI_LOGGED; xfs_trans_log_buf() 550 if (!(bip->bli_flags & XFS_BLI_ORDERED)) xfs_trans_log_buf() 551 xfs_buf_item_log(bip, first, last); xfs_trans_log_buf() 589 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_trans_binval() local 593 ASSERT(bip != NULL); xfs_trans_binval() 594 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_binval() 596 trace_xfs_trans_binval(bip); xfs_trans_binval() 598 if (bip->bli_flags & XFS_BLI_STALE) { xfs_trans_binval() 604 ASSERT(!(bip->bli_flags & (XFS_BLI_LOGGED | XFS_BLI_DIRTY))); xfs_trans_binval() 605 ASSERT(!(bip->__bli_format.blf_flags & XFS_BLF_INODE_BUF)); xfs_trans_binval() 606 ASSERT(!(bip->__bli_format.blf_flags & XFS_BLFT_MASK)); xfs_trans_binval() 607 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL); xfs_trans_binval() 608 ASSERT(bip->bli_item.li_desc->lid_flags & XFS_LID_DIRTY); xfs_trans_binval() 615 bip->bli_flags |= XFS_BLI_STALE; xfs_trans_binval() 616 bip->bli_flags &= ~(XFS_BLI_INODE_BUF | XFS_BLI_LOGGED | XFS_BLI_DIRTY); xfs_trans_binval() 617 bip->__bli_format.blf_flags &= ~XFS_BLF_INODE_BUF; xfs_trans_binval() 618 bip->__bli_format.blf_flags |= XFS_BLF_CANCEL; xfs_trans_binval() 619 bip->__bli_format.blf_flags &= ~XFS_BLFT_MASK; xfs_trans_binval() 620 for (i = 0; i < bip->bli_format_count; i++) { xfs_trans_binval() 621 memset(bip->bli_formats[i].blf_data_map, 0, xfs_trans_binval() 622 (bip->bli_formats[i].blf_map_size * sizeof(uint))); xfs_trans_binval() 624 bip->bli_item.li_desc->lid_flags |= XFS_LID_DIRTY; xfs_trans_binval() 644 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_trans_inode_buf() local 647 ASSERT(bip != NULL); xfs_trans_inode_buf() 648 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_inode_buf() 650 bip->bli_flags |= XFS_BLI_INODE_BUF; xfs_trans_inode_buf() 668 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_trans_stale_inode_buf() local 671 ASSERT(bip != NULL); xfs_trans_stale_inode_buf() 672 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_stale_inode_buf() 674 bip->bli_flags |= XFS_BLI_STALE_INODE; xfs_trans_stale_inode_buf() 675 bip->bli_item.li_cb = xfs_buf_iodone; xfs_trans_stale_inode_buf() 693 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_trans_inode_alloc_buf() local 696 ASSERT(bip != NULL); xfs_trans_inode_alloc_buf() 697 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_inode_alloc_buf() 699 bip->bli_flags |= XFS_BLI_INODE_ALLOC_BUF; xfs_trans_inode_alloc_buf() 716 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_trans_ordered_buf() local 719 ASSERT(bip != NULL); xfs_trans_ordered_buf() 720 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_ordered_buf() 722 bip->bli_flags |= XFS_BLI_ORDERED; xfs_trans_ordered_buf() 723 trace_xfs_buf_item_ordered(bip); xfs_trans_ordered_buf() 736 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_trans_buf_set_type() local 742 ASSERT(bip != NULL); xfs_trans_buf_set_type() 743 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_trans_buf_set_type() 745 xfs_blft_to_flags(&bip->__bli_format, type); xfs_trans_buf_set_type() 778 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_trans_dquot_buf() local 784 bip->__bli_format.blf_flags |= type; xfs_trans_dquot_buf()
|
H A D | xfs_buf_item.c | 63 struct xfs_buf_log_item *bip, xfs_buf_item_size_segment() 68 struct xfs_buf *bp = bip->bli_buf; xfs_buf_item_size_segment() 137 struct xfs_buf_log_item *bip = BUF_ITEM(lip); xfs_buf_item_size() local 140 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_buf_item_size() 141 if (bip->bli_flags & XFS_BLI_STALE) { xfs_buf_item_size() 147 trace_xfs_buf_item_size_stale(bip); xfs_buf_item_size() 148 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL); xfs_buf_item_size() 149 *nvecs += bip->bli_format_count; xfs_buf_item_size() 150 for (i = 0; i < bip->bli_format_count; i++) { xfs_buf_item_size() 151 *nbytes += xfs_buf_log_format_size(&bip->bli_formats[i]); xfs_buf_item_size() 156 ASSERT(bip->bli_flags & XFS_BLI_LOGGED); xfs_buf_item_size() 158 if (bip->bli_flags & XFS_BLI_ORDERED) { xfs_buf_item_size() 164 trace_xfs_buf_item_size_ordered(bip); xfs_buf_item_size() 178 for (i = 0; i < bip->bli_format_count; i++) { xfs_buf_item_size() 179 xfs_buf_item_size_segment(bip, &bip->bli_formats[i], xfs_buf_item_size() 182 trace_xfs_buf_item_size(bip); xfs_buf_item_size() 214 struct xfs_buf_log_item *bip, xfs_buf_item_format_segment() 220 struct xfs_buf *bp = bip->bli_buf; xfs_buf_item_format_segment() 228 blfp->blf_flags = bip->__bli_format.blf_flags; xfs_buf_item_format_segment() 238 if (!(bip->bli_flags & XFS_BLI_STALE) && first_bit == -1) { xfs_buf_item_format_segment() 249 if (bip->bli_flags & XFS_BLI_STALE) { xfs_buf_item_format_segment() 255 trace_xfs_buf_item_format_stale(bip); xfs_buf_item_format_segment() 313 struct xfs_buf_log_item *bip = BUF_ITEM(lip); xfs_buf_item_format() local 314 struct xfs_buf *bp = bip->bli_buf; xfs_buf_item_format() 319 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_buf_item_format() 320 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) || xfs_buf_item_format() 321 (bip->bli_flags & XFS_BLI_STALE)); xfs_buf_item_format() 322 ASSERT((bip->bli_flags & XFS_BLI_STALE) || xfs_buf_item_format() 323 (xfs_blft_from_flags(&bip->__bli_format) > XFS_BLFT_UNKNOWN_BUF xfs_buf_item_format() 324 && xfs_blft_from_flags(&bip->__bli_format) < XFS_BLFT_MAX_BUF)); xfs_buf_item_format() 341 if (bip->bli_flags & XFS_BLI_INODE_BUF) { xfs_buf_item_format() 343 !((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) && xfs_buf_item_format() 345 bip->__bli_format.blf_flags |= XFS_BLF_INODE_BUF; xfs_buf_item_format() 346 bip->bli_flags &= ~XFS_BLI_INODE_BUF; xfs_buf_item_format() 349 if ((bip->bli_flags & (XFS_BLI_ORDERED|XFS_BLI_STALE)) == xfs_buf_item_format() 355 trace_xfs_buf_item_format_ordered(bip); xfs_buf_item_format() 359 for (i = 0; i < bip->bli_format_count; i++) { xfs_buf_item_format() 360 xfs_buf_item_format_segment(bip, lv, &vecp, offset, xfs_buf_item_format() 361 &bip->bli_formats[i]); xfs_buf_item_format() 368 trace_xfs_buf_item_format(bip); xfs_buf_item_format() 384 struct xfs_buf_log_item *bip = BUF_ITEM(lip); xfs_buf_item_pin() local 386 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_buf_item_pin() 387 ASSERT((bip->bli_flags & XFS_BLI_LOGGED) || xfs_buf_item_pin() 388 (bip->bli_flags & XFS_BLI_ORDERED) || xfs_buf_item_pin() 389 (bip->bli_flags & XFS_BLI_STALE)); xfs_buf_item_pin() 391 trace_xfs_buf_item_pin(bip); xfs_buf_item_pin() 393 atomic_inc(&bip->bli_refcount); xfs_buf_item_pin() 394 atomic_inc(&bip->bli_buf->b_pin_count); xfs_buf_item_pin() 415 struct xfs_buf_log_item *bip = BUF_ITEM(lip); xfs_buf_item_unpin() local 416 xfs_buf_t *bp = bip->bli_buf; xfs_buf_item_unpin() 418 int stale = bip->bli_flags & XFS_BLI_STALE; xfs_buf_item_unpin() 421 ASSERT(bp->b_fspriv == bip); xfs_buf_item_unpin() 422 ASSERT(atomic_read(&bip->bli_refcount) > 0); xfs_buf_item_unpin() 424 trace_xfs_buf_item_unpin(bip); xfs_buf_item_unpin() 426 freed = atomic_dec_and_test(&bip->bli_refcount); xfs_buf_item_unpin() 432 ASSERT(bip->bli_flags & XFS_BLI_STALE); xfs_buf_item_unpin() 435 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL); xfs_buf_item_unpin() 437 trace_xfs_buf_item_unpin_stale(bip); xfs_buf_item_unpin() 464 if (bip->bli_flags & XFS_BLI_STALE_INODE) { xfs_buf_item_unpin() 515 struct xfs_buf_log_item *bip = BUF_ITEM(lip); xfs_buf_item_push() local 516 struct xfs_buf *bp = bip->bli_buf; xfs_buf_item_push() 534 ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); xfs_buf_item_push() 536 trace_xfs_buf_item_push(bip); xfs_buf_item_push() 575 struct xfs_buf_log_item *bip = BUF_ITEM(lip); xfs_buf_item_unlock() local 576 struct xfs_buf *bp = bip->bli_buf; xfs_buf_item_unlock() 596 flags = bip->bli_flags; xfs_buf_item_unlock() 597 bip->bli_flags &= ~(XFS_BLI_LOGGED | XFS_BLI_HOLD | XFS_BLI_ORDERED); xfs_buf_item_unlock() 605 trace_xfs_buf_item_unlock_stale(bip); xfs_buf_item_unlock() 606 ASSERT(bip->__bli_format.blf_flags & XFS_BLF_CANCEL); xfs_buf_item_unlock() 608 atomic_dec(&bip->bli_refcount); xfs_buf_item_unlock() 613 trace_xfs_buf_item_unlock(bip); xfs_buf_item_unlock() 628 for (i = 0; i < bip->bli_format_count; i++) { xfs_buf_item_unlock() 629 if (!xfs_bitmap_empty(bip->bli_formats[i].blf_data_map, xfs_buf_item_unlock() 630 bip->bli_formats[i].blf_map_size)) { xfs_buf_item_unlock() 645 if (atomic_dec_and_test(&bip->bli_refcount)) { xfs_buf_item_unlock() 682 struct xfs_buf_log_item *bip = BUF_ITEM(lip); xfs_buf_item_committed() local 684 trace_xfs_buf_item_committed(bip); xfs_buf_item_committed() 686 if ((bip->bli_flags & XFS_BLI_INODE_ALLOC_BUF) && lip->li_lsn != 0) xfs_buf_item_committed() 714 struct xfs_buf_log_item *bip, xfs_buf_item_get_format() 717 ASSERT(bip->bli_formats == NULL); xfs_buf_item_get_format() 718 bip->bli_format_count = count; xfs_buf_item_get_format() 721 bip->bli_formats = &bip->__bli_format; xfs_buf_item_get_format() 725 bip->bli_formats = kmem_zalloc(count * sizeof(struct xfs_buf_log_format), xfs_buf_item_get_format() 727 if (!bip->bli_formats) xfs_buf_item_get_format() 734 struct xfs_buf_log_item *bip) xfs_buf_item_free_format() 736 if (bip->bli_formats != &bip->__bli_format) { xfs_buf_item_free_format() 737 kmem_free(bip->bli_formats); xfs_buf_item_free_format() 738 bip->bli_formats = NULL; xfs_buf_item_free_format() 755 struct xfs_buf_log_item *bip; xfs_buf_item_init() local 771 bip = kmem_zone_zalloc(xfs_buf_item_zone, KM_SLEEP); xfs_buf_item_init() 772 xfs_log_item_init(mp, &bip->bli_item, XFS_LI_BUF, &xfs_buf_item_ops); xfs_buf_item_init() 773 bip->bli_buf = bp; xfs_buf_item_init() 784 error = xfs_buf_item_get_format(bip, bp->b_map_count); xfs_buf_item_init() 787 kmem_zone_free(xfs_buf_item_zone, bip); xfs_buf_item_init() 792 for (i = 0; i < bip->bli_format_count; i++) { xfs_buf_item_init() 797 bip->bli_formats[i].blf_type = XFS_LI_BUF; xfs_buf_item_init() 798 bip->bli_formats[i].blf_blkno = bp->b_maps[i].bm_bn; xfs_buf_item_init() 799 bip->bli_formats[i].blf_len = bp->b_maps[i].bm_len; xfs_buf_item_init() 800 bip->bli_formats[i].blf_map_size = map_size; xfs_buf_item_init() 808 bip->bli_item.li_bio_list = bp->b_fspriv; xfs_buf_item_init() 809 bp->b_fspriv = bip; xfs_buf_item_init() 902 xfs_buf_log_item_t *bip, xfs_buf_item_log() 909 struct xfs_buf *bp = bip->bli_buf; xfs_buf_item_log() 915 for (i = 0; i < bip->bli_format_count; i++) { xfs_buf_item_log() 929 &bip->bli_formats[i].blf_data_map[0]); xfs_buf_item_log() 942 xfs_buf_log_item_t *bip) xfs_buf_item_dirty() 944 return (bip->bli_flags & XFS_BLI_DIRTY); xfs_buf_item_dirty() 949 xfs_buf_log_item_t *bip) xfs_buf_item_free() 951 xfs_buf_item_free_format(bip); xfs_buf_item_free() 952 kmem_zone_free(xfs_buf_item_zone, bip); xfs_buf_item_free() 966 xfs_buf_log_item_t *bip = bp->b_fspriv; xfs_buf_item_relse() local 969 ASSERT(!(bip->bli_item.li_flags & XFS_LI_IN_AIL)); xfs_buf_item_relse() 971 bp->b_fspriv = bip->bli_item.li_bio_list; xfs_buf_item_relse() 976 xfs_buf_item_free(bip); xfs_buf_item_relse() 62 xfs_buf_item_size_segment( struct xfs_buf_log_item *bip, struct xfs_buf_log_format *blfp, int *nvecs, int *nbytes) xfs_buf_item_size_segment() argument 213 xfs_buf_item_format_segment( struct xfs_buf_log_item *bip, struct xfs_log_vec *lv, struct xfs_log_iovec **vecp, uint offset, struct xfs_buf_log_format *blfp) xfs_buf_item_format_segment() argument 713 xfs_buf_item_get_format( struct xfs_buf_log_item *bip, int count) xfs_buf_item_get_format() argument 733 xfs_buf_item_free_format( struct xfs_buf_log_item *bip) xfs_buf_item_free_format() argument 901 xfs_buf_item_log( xfs_buf_log_item_t *bip, uint first, uint last) xfs_buf_item_log() argument 941 xfs_buf_item_dirty( xfs_buf_log_item_t *bip) xfs_buf_item_dirty() argument 948 xfs_buf_item_free( xfs_buf_log_item_t *bip) xfs_buf_item_free() argument
|
H A D | xfs_trace.h | 463 TP_PROTO(struct xfs_buf_log_item *bip), 464 TP_ARGS(bip), 480 __entry->dev = bip->bli_buf->b_target->bt_dev; 481 __entry->bli_flags = bip->bli_flags; 482 __entry->bli_recur = bip->bli_recur; 483 __entry->bli_refcount = atomic_read(&bip->bli_refcount); 484 __entry->buf_bno = bip->bli_buf->b_bn; 485 __entry->buf_len = BBTOB(bip->bli_buf->b_length); 486 __entry->buf_flags = bip->bli_buf->b_flags; 487 __entry->buf_hold = atomic_read(&bip->bli_buf->b_hold); 488 __entry->buf_pincount = atomic_read(&bip->bli_buf->b_pin_count); 489 __entry->buf_lockval = bip->bli_buf->b_sema.count; 490 __entry->li_desc = bip->bli_item.li_desc; 491 __entry->li_flags = bip->bli_item.li_flags; 512 TP_PROTO(struct xfs_buf_log_item *bip), \ 513 TP_ARGS(bip))
|
/linux-4.4.14/drivers/scsi/ |
H A D | sd_dif.c | 130 struct bio_integrity_payload *bip = bio_integrity(bio); sd_dif_prepare() local 136 if (bip->bip_flags & BIP_MAPPED_INTEGRITY) sd_dif_prepare() 139 virt = bip_get_seed(bip) & 0xffffffff; sd_dif_prepare() 141 bip_for_each_vec(iv, bip, iter) { bip_for_each_vec() 156 bip->bip_flags |= BIP_MAPPED_INTEGRITY; 182 struct bio_integrity_payload *bip = bio_integrity(bio); sd_dif_complete() local 186 virt = bip_get_seed(bip) & 0xffffffff; sd_dif_complete() 188 bip_for_each_vec(iv, bip, iter) { bip_for_each_vec()
|
/linux-4.4.14/drivers/nvdimm/ |
H A D | blk.c | 64 struct bio_integrity_payload *bip, u64 lba, nd_blk_rw_integrity() 85 bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter); nd_blk_rw_integrity() 102 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, cur_len); nd_blk_rw_integrity() 110 struct bio_integrity_payload *bip, u64 lba, nd_blk_rw_integrity() 118 struct bio_integrity_payload *bip, struct page *page, nd_blk_do_bvec() 137 cur_len = bip ? min(len, blk_dev->sector_size) : len; nd_blk_do_bvec() 151 if (bip) { nd_blk_do_bvec() 152 err = nd_blk_rw_integrity(blk_dev, bip, lba, rw); nd_blk_do_bvec() 168 struct bio_integrity_payload *bip; nd_blk_make_request() local 187 bip = bio_integrity(bio); nd_blk_make_request() 195 err = nd_blk_do_bvec(blk_dev, bip, bvec.bv_page, len, bio_for_each_segment() 63 nd_blk_rw_integrity(struct nd_blk_device *blk_dev, struct bio_integrity_payload *bip, u64 lba, int rw) nd_blk_rw_integrity() argument 109 nd_blk_rw_integrity(struct nd_blk_device *blk_dev, struct bio_integrity_payload *bip, u64 lba, int rw) nd_blk_rw_integrity() argument 117 nd_blk_do_bvec(struct nd_blk_device *blk_dev, struct bio_integrity_payload *bip, struct page *page, unsigned int len, unsigned int off, int rw, sector_t sector) nd_blk_do_bvec() argument
|
H A D | btt.c | 908 static int btt_rw_integrity(struct btt *btt, struct bio_integrity_payload *bip, btt_rw_integrity() argument 915 if (bip == NULL) btt_rw_integrity() 925 bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter); btt_rw_integrity() 947 bvec_iter_advance(bip->bip_vec, &bip->bip_iter, cur_len); btt_rw_integrity() 954 static int btt_rw_integrity(struct btt *btt, struct bio_integrity_payload *bip, btt_rw_integrity() argument 961 static int btt_read_pg(struct btt *btt, struct bio_integrity_payload *bip, btt_read_pg() argument 1025 if (bip) { btt_read_pg() 1026 ret = btt_rw_integrity(btt, bip, arena, postmap, READ); btt_read_pg() 1048 static int btt_write_pg(struct btt *btt, struct bio_integrity_payload *bip, btt_write_pg() argument 1090 if (bip) { btt_write_pg() 1091 ret = btt_rw_integrity(btt, bip, arena, new_postmap, btt_write_pg() 1136 static int btt_do_bvec(struct btt *btt, struct bio_integrity_payload *bip, btt_do_bvec() argument 1143 ret = btt_read_pg(btt, bip, page, off, sector, len); btt_do_bvec() 1147 ret = btt_write_pg(btt, bip, sector, page, off, len); btt_do_bvec() 1155 struct bio_integrity_payload *bip = bio_integrity(bio); btt_make_request() local 1185 err = btt_do_bvec(btt, bip, bvec.bv_page, len, bvec.bv_offset, bio_for_each_segment()
|
/linux-4.4.14/fs/xfs/libxfs/ |
H A D | xfs_symlink_remote.c | 151 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_symlink_write_verify() local 163 if (bip) { xfs_symlink_write_verify() 165 dsl->sl_lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_symlink_write_verify()
|
H A D | xfs_dir2_block.c | 107 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_dir3_block_write_verify() local 119 if (bip) xfs_dir3_block_write_verify() 120 hdr3->lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_dir3_block_write_verify()
|
H A D | xfs_dir2_data.c | 289 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_dir3_data_write_verify() local 301 if (bip) xfs_dir3_data_write_verify() 302 hdr3->lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_dir3_data_write_verify()
|
H A D | xfs_sb.c | 662 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_sb_write_verify() local 675 if (bip) xfs_sb_write_verify() 676 XFS_BUF_TO_SBP(bp)->sb_lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_sb_write_verify()
|
H A D | xfs_alloc.c | 519 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_agfl_write_verify() local 531 if (bip) xfs_agfl_write_verify() 532 XFS_BUF_TO_AGFL(bp)->agfl_lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_agfl_write_verify() 2325 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_agf_write_verify() local 2336 if (bip) xfs_agf_write_verify() 2337 XFS_BUF_TO_AGF(bp)->agf_lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_agf_write_verify()
|
H A D | xfs_dir2_leaf.c | 201 struct xfs_buf_log_item *bip = bp->b_fspriv; __write_verify() local 213 if (bip) __write_verify() 214 hdr3->info.lsn = cpu_to_be64(bip->bli_item.li_lsn); __write_verify()
|
H A D | xfs_btree.c | 234 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_btree_lblock_calc_crc() local 238 if (bip) xfs_btree_lblock_calc_crc() 239 block->bb_u.l.bb_lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_btree_lblock_calc_crc() 272 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_btree_sblock_calc_crc() local 276 if (bip) xfs_btree_sblock_calc_crc() 277 block->bb_u.s.bb_lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_btree_sblock_calc_crc()
|
H A D | xfs_attr_leaf.c | 290 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_attr3_leaf_write_verify() local 302 if (bip) xfs_attr3_leaf_write_verify() 303 hdr3->info.lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_attr3_leaf_write_verify()
|
H A D | xfs_da_btree.c | 185 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_da3_node_write_verify() local 197 if (bip) xfs_da3_node_write_verify() 198 hdr3->info.lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_da3_node_write_verify()
|
H A D | xfs_dir2_node.c | 134 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_dir3_free_write_verify() local 146 if (bip) xfs_dir3_free_write_verify() 147 hdr3->lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_dir3_free_write_verify()
|
H A D | xfs_ialloc.c | 2558 struct xfs_buf_log_item *bip = bp->b_fspriv; xfs_agi_write_verify() local 2569 if (bip) xfs_agi_write_verify() 2570 XFS_BUF_TO_AGI(bp)->agi_lsn = cpu_to_be64(bip->bli_item.li_lsn); xfs_agi_write_verify()
|
H A D | xfs_bmap.c | 268 struct xfs_buf_log_item *bip; xfs_bmap_get_bp() local 269 bip = (struct xfs_buf_log_item *)lidp->lid_item; xfs_bmap_get_bp() 270 if (bip->bli_item.li_type == XFS_LI_BUF && xfs_bmap_get_bp() 271 XFS_BUF_ADDR(bip->bli_buf) == bno) xfs_bmap_get_bp() 272 return bip->bli_buf; xfs_bmap_get_bp()
|
/linux-4.4.14/include/linux/ |
H A D | bio.h | 373 unsigned short bip_slab; /* slab the bip came from */ 386 struct bio_integrity_payload *bip = bio_integrity(bio); bio_integrity_flagged() local 388 if (bip) bio_integrity_flagged() 389 return bip->bip_flags & flag; bio_integrity_flagged() 394 static inline sector_t bip_get_seed(struct bio_integrity_payload *bip) bip_get_seed() argument 396 return bip->bip_iter.bi_sector; bip_get_seed() 399 static inline void bip_set_seed(struct bio_integrity_payload *bip, bip_set_seed() argument 402 bip->bip_iter.bi_sector = seed; bip_set_seed() 750 #define bip_for_each_vec(bvl, bip, iter) \ 751 for_each_bvec(bvl, (bip)->bip_vec, iter, (bip)->bip_iter)
|
H A D | blkdev.h | 1539 struct bio_integrity_payload *bip = bio_integrity(req->bio); integrity_req_gap_back_merge() local 1542 return bvec_gap_to_prev(req->q, &bip->bip_vec[bip->bip_vcnt - 1], integrity_req_gap_back_merge() 1549 struct bio_integrity_payload *bip = bio_integrity(bio); integrity_req_gap_front_merge() local 1552 return bvec_gap_to_prev(req->q, &bip->bip_vec[bip->bip_vcnt - 1], integrity_req_gap_front_merge()
|
/linux-4.4.14/drivers/target/ |
H A D | target_core_iblock.c | 594 struct bio_integrity_payload *bip; iblock_alloc_bip() local 605 bip = bio_integrity_alloc(bio, GFP_NOIO, cmd->t_prot_nents); iblock_alloc_bip() 606 if (!bip) { iblock_alloc_bip() 611 bip->bip_iter.bi_size = (cmd->data_length / dev->dev_attrib.block_size) * iblock_alloc_bip() 613 bip->bip_iter.bi_sector = bio->bi_iter.bi_sector; iblock_alloc_bip() 615 pr_debug("IBLOCK BIP Size: %u Sector: %llu\n", bip->bip_iter.bi_size, iblock_alloc_bip() 616 (unsigned long long)bip->bip_iter.bi_sector); iblock_alloc_bip()
|
/linux-4.4.14/drivers/net/wireless/ti/wlcore/ |
H A D | testmode.c | 111 /* If we got bip calibration answer print radio status */ wl1271_tm_cmd_test()
|
/linux-4.4.14/drivers/nvme/host/ |
H A D | pci.c | 512 * nvme_dif_remap - remaps ref tags to bip seed and physical lba 525 struct bio_integrity_payload *bip; nvme_dif_remap() local 533 bip = bio_integrity(req->bio); nvme_dif_remap() 534 if (!bip) nvme_dif_remap() 537 pmap = kmap_atomic(bip->bip_vec->bv_page) + bip->bip_vec->bv_offset; nvme_dif_remap() 540 virt = bip_get_seed(bip); nvme_dif_remap()
|
/linux-4.4.14/drivers/md/ |
H A D | raid5.c | 2954 struct bio **bip; add_stripe_bio() local 2975 bip = &sh->dev[dd_idx].towrite; add_stripe_bio() 2976 if (*bip == NULL) add_stripe_bio() 2979 bip = &sh->dev[dd_idx].toread; add_stripe_bio() 2980 while (*bip && (*bip)->bi_iter.bi_sector < bi->bi_iter.bi_sector) { add_stripe_bio() 2981 if (bio_end_sector(*bip) > bi->bi_iter.bi_sector) add_stripe_bio() 2983 bip = & (*bip)->bi_next; add_stripe_bio() 2985 if (*bip && (*bip)->bi_iter.bi_sector < bio_end_sector(bi)) add_stripe_bio() 2991 BUG_ON(*bip && bi->bi_next && (*bip) != bi->bi_next); add_stripe_bio() 2992 if (*bip) add_stripe_bio() 2993 bi->bi_next = *bip; add_stripe_bio() 2994 *bip = bi; add_stripe_bio() 3013 (unsigned long long)(*bip)->bi_iter.bi_sector, add_stripe_bio()
|
/linux-4.4.14/drivers/staging/comedi/drivers/ |
H A D | amplc_pci230.c | 792 /* Specify uni/bip, se/diff, conversion source, and reset FIFO. */ pci230_ai_insn_read() 1842 * Keep se/diff and bip/uni settings. pci230_ai_stop() 2109 * - Enable and reset FIFO, specify uni/bip, se/diff, and set pci230_ai_cmd() 2191 * uni/bip, se/diff, and temporarily set the start conversion source pci230_ai_cmd()
|
H A D | cb_pcidas64.c | 501 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, /* bip 10, 5, 2, 1, 0.5, 0.2, 0.1 */
|