mblk 350 arch/arm64/mm/numa.c struct memblock_region *mblk; mblk 353 arch/arm64/mm/numa.c for_each_memblock(memory, mblk) mblk 354 arch/arm64/mm/numa.c if (mblk->nid == NUMA_NO_NODE || mblk->nid >= MAX_NUMNODES) { mblk 356 arch/arm64/mm/numa.c mblk->nid, mblk->base, mblk 357 arch/arm64/mm/numa.c mblk->base + mblk->size - 1); mblk 424 arch/arm64/mm/numa.c struct memblock_region *mblk; mblk 431 arch/arm64/mm/numa.c for_each_memblock(memory, mblk) { mblk 432 arch/arm64/mm/numa.c ret = numa_add_memblk(0, mblk->base, mblk->base + mblk->size); mblk 125 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 272 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk = NULL; mblk 277 drivers/md/dm-zoned-metadata.c mblk = list_first_entry_or_null(&zmd->mblk_lru_list, mblk 279 drivers/md/dm-zoned-metadata.c if (mblk) { mblk 280 drivers/md/dm-zoned-metadata.c list_del_init(&mblk->link); mblk 281 drivers/md/dm-zoned-metadata.c rb_erase(&mblk->node, &zmd->mblk_rbtree); mblk 282 drivers/md/dm-zoned-metadata.c mblk->no = mblk_no; mblk 285 drivers/md/dm-zoned-metadata.c if (mblk) mblk 286 drivers/md/dm-zoned-metadata.c return mblk; mblk 290 drivers/md/dm-zoned-metadata.c mblk = kmalloc(sizeof(struct dmz_mblock), GFP_NOIO); mblk 291 drivers/md/dm-zoned-metadata.c if (!mblk) mblk 294 drivers/md/dm-zoned-metadata.c mblk->page = alloc_page(GFP_NOIO); mblk 295 drivers/md/dm-zoned-metadata.c if (!mblk->page) { mblk 296 drivers/md/dm-zoned-metadata.c kfree(mblk); mblk 300 drivers/md/dm-zoned-metadata.c RB_CLEAR_NODE(&mblk->node); mblk 301 drivers/md/dm-zoned-metadata.c INIT_LIST_HEAD(&mblk->link); mblk 302 drivers/md/dm-zoned-metadata.c mblk->ref = 0; mblk 303 drivers/md/dm-zoned-metadata.c mblk->state = 0; mblk 304 drivers/md/dm-zoned-metadata.c mblk->no = mblk_no; mblk 305 drivers/md/dm-zoned-metadata.c mblk->data = page_address(mblk->page); mblk 309 drivers/md/dm-zoned-metadata.c return mblk; mblk 315 drivers/md/dm-zoned-metadata.c static void dmz_free_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk) mblk 317 drivers/md/dm-zoned-metadata.c __free_pages(mblk->page, 0); mblk 318 drivers/md/dm-zoned-metadata.c kfree(mblk); mblk 326 drivers/md/dm-zoned-metadata.c static void dmz_insert_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk) mblk 336 drivers/md/dm-zoned-metadata.c new = (b->no < mblk->no) ? &((*new)->rb_left) : &((*new)->rb_right); mblk 340 drivers/md/dm-zoned-metadata.c rb_link_node(&mblk->node, parent, new); mblk 341 drivers/md/dm-zoned-metadata.c rb_insert_color(&mblk->node, root); mblk 353 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 356 drivers/md/dm-zoned-metadata.c mblk = container_of(node, struct dmz_mblock, node); mblk 357 drivers/md/dm-zoned-metadata.c if (mblk->no == mblk_no) { mblk 362 drivers/md/dm-zoned-metadata.c mblk->ref++; mblk 363 drivers/md/dm-zoned-metadata.c if (mblk->ref == 1 && mblk 364 drivers/md/dm-zoned-metadata.c !test_bit(DMZ_META_DIRTY, &mblk->state)) mblk 365 drivers/md/dm-zoned-metadata.c list_del_init(&mblk->link); mblk 366 drivers/md/dm-zoned-metadata.c return mblk; mblk 368 drivers/md/dm-zoned-metadata.c node = (mblk->no < mblk_no) ? node->rb_left : node->rb_right; mblk 379 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk = bio->bi_private; mblk 383 drivers/md/dm-zoned-metadata.c set_bit(DMZ_META_ERROR, &mblk->state); mblk 390 drivers/md/dm-zoned-metadata.c clear_bit_unlock(flag, &mblk->state); mblk 392 drivers/md/dm-zoned-metadata.c wake_up_bit(&mblk->state, flag); mblk 403 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk, *m; mblk 411 drivers/md/dm-zoned-metadata.c mblk = dmz_alloc_mblock(zmd, mblk_no); mblk 412 drivers/md/dm-zoned-metadata.c if (!mblk) mblk 417 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 430 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 435 drivers/md/dm-zoned-metadata.c mblk->ref++; mblk 436 drivers/md/dm-zoned-metadata.c set_bit(DMZ_META_READING, &mblk->state); mblk 437 drivers/md/dm-zoned-metadata.c dmz_insert_mblock(zmd, mblk); mblk 444 drivers/md/dm-zoned-metadata.c bio->bi_private = mblk; mblk 447 drivers/md/dm-zoned-metadata.c bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0); mblk 450 drivers/md/dm-zoned-metadata.c return mblk; mblk 459 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 468 drivers/md/dm-zoned-metadata.c mblk = list_first_entry(&zmd->mblk_lru_list, mblk 470 drivers/md/dm-zoned-metadata.c list_del_init(&mblk->link); mblk 471 drivers/md/dm-zoned-metadata.c rb_erase(&mblk->node, &zmd->mblk_rbtree); mblk 472 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 510 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk) mblk 513 drivers/md/dm-zoned-metadata.c if (!mblk) mblk 518 drivers/md/dm-zoned-metadata.c mblk->ref--; mblk 519 drivers/md/dm-zoned-metadata.c if (mblk->ref == 0) { mblk 520 drivers/md/dm-zoned-metadata.c if (test_bit(DMZ_META_ERROR, &mblk->state)) { mblk 521 drivers/md/dm-zoned-metadata.c rb_erase(&mblk->node, &zmd->mblk_rbtree); mblk 522 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 523 drivers/md/dm-zoned-metadata.c } else if (!test_bit(DMZ_META_DIRTY, &mblk->state)) { mblk 524 drivers/md/dm-zoned-metadata.c list_add_tail(&mblk->link, &zmd->mblk_lru_list); mblk 539 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 543 drivers/md/dm-zoned-metadata.c mblk = dmz_get_mblock_fast(zmd, mblk_no); mblk 546 drivers/md/dm-zoned-metadata.c if (!mblk) { mblk 548 drivers/md/dm-zoned-metadata.c mblk = dmz_get_mblock_slow(zmd, mblk_no); mblk 549 drivers/md/dm-zoned-metadata.c if (IS_ERR(mblk)) mblk 550 drivers/md/dm-zoned-metadata.c return mblk; mblk 554 drivers/md/dm-zoned-metadata.c wait_on_bit_io(&mblk->state, DMZ_META_READING, mblk 556 drivers/md/dm-zoned-metadata.c if (test_bit(DMZ_META_ERROR, &mblk->state)) { mblk 557 drivers/md/dm-zoned-metadata.c dmz_release_mblock(zmd, mblk); mblk 562 drivers/md/dm-zoned-metadata.c return mblk; mblk 568 drivers/md/dm-zoned-metadata.c static void dmz_dirty_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk) mblk 571 drivers/md/dm-zoned-metadata.c if (!test_and_set_bit(DMZ_META_DIRTY, &mblk->state)) mblk 572 drivers/md/dm-zoned-metadata.c list_add_tail(&mblk->link, &zmd->mblk_dirty_list); mblk 579 drivers/md/dm-zoned-metadata.c static int dmz_write_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk, mblk 582 drivers/md/dm-zoned-metadata.c sector_t block = zmd->sb[set].block + mblk->no; mblk 590 drivers/md/dm-zoned-metadata.c set_bit(DMZ_META_ERROR, &mblk->state); mblk 594 drivers/md/dm-zoned-metadata.c set_bit(DMZ_META_WRITING, &mblk->state); mblk 598 drivers/md/dm-zoned-metadata.c bio->bi_private = mblk; mblk 601 drivers/md/dm-zoned-metadata.c bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0); mblk 641 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk = zmd->sb[set].mblk; mblk 662 drivers/md/dm-zoned-metadata.c ret = dmz_rdwr_block(zmd, REQ_OP_WRITE, block, mblk->page); mblk 676 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 682 drivers/md/dm-zoned-metadata.c list_for_each_entry(mblk, write_list, link) { mblk 683 drivers/md/dm-zoned-metadata.c ret = dmz_write_mblock(zmd, mblk, set); mblk 691 drivers/md/dm-zoned-metadata.c list_for_each_entry(mblk, write_list, link) { mblk 694 drivers/md/dm-zoned-metadata.c wait_on_bit_io(&mblk->state, DMZ_META_WRITING, mblk 696 drivers/md/dm-zoned-metadata.c if (test_bit(DMZ_META_ERROR, &mblk->state)) { mblk 697 drivers/md/dm-zoned-metadata.c clear_bit(DMZ_META_ERROR, &mblk->state); mblk 741 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 801 drivers/md/dm-zoned-metadata.c mblk = list_first_entry(&write_list, struct dmz_mblock, link); mblk 802 drivers/md/dm-zoned-metadata.c list_del_init(&mblk->link); mblk 805 drivers/md/dm-zoned-metadata.c clear_bit(DMZ_META_DIRTY, &mblk->state); mblk 806 drivers/md/dm-zoned-metadata.c if (mblk->ref == 0) mblk 807 drivers/md/dm-zoned-metadata.c list_add_tail(&mblk->link, &zmd->mblk_lru_list); mblk 901 drivers/md/dm-zoned-metadata.c zmd->sb[set].mblk->page); mblk 912 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 916 drivers/md/dm-zoned-metadata.c mblk = dmz_alloc_mblock(zmd, 0); mblk 917 drivers/md/dm-zoned-metadata.c if (!mblk) mblk 920 drivers/md/dm-zoned-metadata.c zmd->sb[1].mblk = mblk; mblk 921 drivers/md/dm-zoned-metadata.c zmd->sb[1].sb = mblk->data; mblk 933 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 934 drivers/md/dm-zoned-metadata.c zmd->sb[1].mblk = NULL; mblk 944 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 948 drivers/md/dm-zoned-metadata.c mblk = dmz_alloc_mblock(zmd, 0); mblk 949 drivers/md/dm-zoned-metadata.c if (!mblk) mblk 952 drivers/md/dm-zoned-metadata.c zmd->sb[set].mblk = mblk; mblk 953 drivers/md/dm-zoned-metadata.c zmd->sb[set].sb = mblk->data; mblk 958 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 959 drivers/md/dm-zoned-metadata.c zmd->sb[set].mblk = NULL; mblk 1001 drivers/md/dm-zoned-metadata.c if (!zmd->sb[dst_set].mblk) { mblk 1002 drivers/md/dm-zoned-metadata.c zmd->sb[dst_set].mblk = dmz_alloc_mblock(zmd, 0); mblk 1003 drivers/md/dm-zoned-metadata.c if (!zmd->sb[dst_set].mblk) { mblk 1007 drivers/md/dm-zoned-metadata.c zmd->sb[dst_set].sb = zmd->sb[dst_set].mblk->data; mblk 2041 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 2052 drivers/md/dm-zoned-metadata.c mblk = dmz_get_bitmap(zmd, zone, chunk_block); mblk 2053 drivers/md/dm-zoned-metadata.c if (IS_ERR(mblk)) mblk 2054 drivers/md/dm-zoned-metadata.c return PTR_ERR(mblk); mblk 2060 drivers/md/dm-zoned-metadata.c count = dmz_set_bits((unsigned long *)mblk->data, bit, nr_bits); mblk 2062 drivers/md/dm-zoned-metadata.c dmz_dirty_mblock(zmd, mblk); mblk 2065 drivers/md/dm-zoned-metadata.c dmz_release_mblock(zmd, mblk); mblk 2121 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 2131 drivers/md/dm-zoned-metadata.c mblk = dmz_get_bitmap(zmd, zone, chunk_block); mblk 2132 drivers/md/dm-zoned-metadata.c if (IS_ERR(mblk)) mblk 2133 drivers/md/dm-zoned-metadata.c return PTR_ERR(mblk); mblk 2139 drivers/md/dm-zoned-metadata.c count = dmz_clear_bits((unsigned long *)mblk->data, mblk 2142 drivers/md/dm-zoned-metadata.c dmz_dirty_mblock(zmd, mblk); mblk 2145 drivers/md/dm-zoned-metadata.c dmz_release_mblock(zmd, mblk); mblk 2168 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 2174 drivers/md/dm-zoned-metadata.c mblk = dmz_get_bitmap(zmd, zone, chunk_block); mblk 2175 drivers/md/dm-zoned-metadata.c if (IS_ERR(mblk)) mblk 2176 drivers/md/dm-zoned-metadata.c return PTR_ERR(mblk); mblk 2180 drivers/md/dm-zoned-metadata.c (unsigned long *) mblk->data) != 0; mblk 2182 drivers/md/dm-zoned-metadata.c dmz_release_mblock(zmd, mblk); mblk 2195 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 2205 drivers/md/dm-zoned-metadata.c mblk = dmz_get_bitmap(zmd, zone, chunk_block); mblk 2206 drivers/md/dm-zoned-metadata.c if (IS_ERR(mblk)) mblk 2207 drivers/md/dm-zoned-metadata.c return PTR_ERR(mblk); mblk 2210 drivers/md/dm-zoned-metadata.c bitmap = (unsigned long *) mblk->data; mblk 2217 drivers/md/dm-zoned-metadata.c dmz_release_mblock(zmd, mblk); mblk 2305 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk; mblk 2314 drivers/md/dm-zoned-metadata.c mblk = dmz_get_bitmap(zmd, zone, chunk_block); mblk 2315 drivers/md/dm-zoned-metadata.c if (IS_ERR(mblk)) { mblk 2321 drivers/md/dm-zoned-metadata.c bitmap = mblk->data; mblk 2326 drivers/md/dm-zoned-metadata.c dmz_release_mblock(zmd, mblk); mblk 2341 drivers/md/dm-zoned-metadata.c struct dmz_mblock *mblk, *next; mblk 2354 drivers/md/dm-zoned-metadata.c if (zmd->sb[i].mblk) { mblk 2355 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, zmd->sb[i].mblk); mblk 2356 drivers/md/dm-zoned-metadata.c zmd->sb[i].mblk = NULL; mblk 2362 drivers/md/dm-zoned-metadata.c mblk = list_first_entry(&zmd->mblk_dirty_list, mblk 2365 drivers/md/dm-zoned-metadata.c (u64)mblk->no, mblk->ref); mblk 2366 drivers/md/dm-zoned-metadata.c list_del_init(&mblk->link); mblk 2367 drivers/md/dm-zoned-metadata.c rb_erase(&mblk->node, &zmd->mblk_rbtree); mblk 2368 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 2372 drivers/md/dm-zoned-metadata.c mblk = list_first_entry(&zmd->mblk_lru_list, mblk 2374 drivers/md/dm-zoned-metadata.c list_del_init(&mblk->link); mblk 2375 drivers/md/dm-zoned-metadata.c rb_erase(&mblk->node, &zmd->mblk_rbtree); mblk 2376 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk); mblk 2381 drivers/md/dm-zoned-metadata.c rbtree_postorder_for_each_entry_safe(mblk, next, root, node) { mblk 2383 drivers/md/dm-zoned-metadata.c (u64)mblk->no, mblk->ref); mblk 2384 drivers/md/dm-zoned-metadata.c mblk->ref = 0; mblk 2385 drivers/md/dm-zoned-metadata.c dmz_free_mblock(zmd, mblk);