Lines Matching refs:raid_bdev
16 struct raid_bdev *raid_bdev; member
35 raid_bdev_alloc_superblock(struct raid_bdev *raid_bdev, uint32_t block_size) in raid_bdev_alloc_superblock() argument
39 assert(raid_bdev->sb == NULL); in raid_bdev_alloc_superblock()
47 raid_bdev->sb = sb; in raid_bdev_alloc_superblock()
53 raid_bdev_free_superblock(struct raid_bdev *raid_bdev) in raid_bdev_free_superblock() argument
55 if (raid_bdev->sb_io_buf != NULL && raid_bdev->sb_io_buf != raid_bdev->sb) { in raid_bdev_free_superblock()
56 assert(spdk_bdev_is_md_interleaved(&raid_bdev->bdev)); in raid_bdev_free_superblock()
57 spdk_dma_free(raid_bdev->sb_io_buf); in raid_bdev_free_superblock()
58 raid_bdev->sb_io_buf = NULL; in raid_bdev_free_superblock()
60 spdk_dma_free(raid_bdev->sb); in raid_bdev_free_superblock()
61 raid_bdev->sb = NULL; in raid_bdev_free_superblock()
65 raid_bdev_init_superblock(struct raid_bdev *raid_bdev) in raid_bdev_init_superblock() argument
67 struct raid_bdev_superblock *sb = raid_bdev->sb; in raid_bdev_init_superblock()
74 spdk_uuid_copy(&sb->uuid, &raid_bdev->bdev.uuid); in raid_bdev_init_superblock()
75 snprintf(sb->name, RAID_BDEV_SB_NAME_SIZE, "%s", raid_bdev->bdev.name); in raid_bdev_init_superblock()
76 sb->raid_size = raid_bdev->bdev.blockcnt; in raid_bdev_init_superblock()
77 sb->block_size = spdk_bdev_get_data_block_size(&raid_bdev->bdev); in raid_bdev_init_superblock()
78 sb->level = raid_bdev->level; in raid_bdev_init_superblock()
79 sb->strip_size = raid_bdev->strip_size; in raid_bdev_init_superblock()
81 sb->num_base_bdevs = sb->base_bdevs_size = raid_bdev->num_base_bdevs; in raid_bdev_init_superblock()
85 RAID_FOR_EACH_BASE_BDEV(raid_bdev, base_info) { in raid_bdev_init_superblock()
96 raid_bdev_alloc_sb_io_buf(struct raid_bdev *raid_bdev) in raid_bdev_alloc_sb_io_buf() argument
98 struct raid_bdev_superblock *sb = raid_bdev->sb; in raid_bdev_alloc_sb_io_buf()
100 if (spdk_bdev_is_md_interleaved(&raid_bdev->bdev)) { in raid_bdev_alloc_sb_io_buf()
101 raid_bdev->sb_io_buf_size = spdk_divide_round_up(sb->length, in raid_bdev_alloc_sb_io_buf()
102 sb->block_size) * raid_bdev->bdev.blocklen; in raid_bdev_alloc_sb_io_buf()
103 raid_bdev->sb_io_buf = spdk_dma_zmalloc(raid_bdev->sb_io_buf_size, 0x1000, NULL); in raid_bdev_alloc_sb_io_buf()
104 if (!raid_bdev->sb_io_buf) { in raid_bdev_alloc_sb_io_buf()
109 raid_bdev->sb_io_buf_size = SPDK_ALIGN_CEIL(sb->length, raid_bdev->bdev.blocklen); in raid_bdev_alloc_sb_io_buf()
110 raid_bdev->sb_io_buf = raid_bdev->sb; in raid_bdev_alloc_sb_io_buf()
318 ctx->cb(ctx->status, ctx->raid_bdev, ctx->cb_ctx); in raid_bdev_write_sb_base_bdev_done()
343 struct raid_bdev *raid_bdev = ctx->raid_bdev; in _raid_bdev_write_superblock() local
348 for (i = ctx->submitted; i < raid_bdev->num_base_bdevs; i++) { in _raid_bdev_write_superblock()
349 base_info = &raid_bdev->base_bdev_info[i]; in _raid_bdev_write_superblock()
359 raid_bdev->sb_io_buf, 0, raid_bdev->sb_io_buf_size, in _raid_bdev_write_superblock()
383 raid_bdev_write_superblock(struct raid_bdev *raid_bdev, raid_bdev_write_sb_cb cb, void *cb_ctx) in raid_bdev_write_superblock() argument
386 struct raid_bdev_superblock *sb = raid_bdev->sb; in raid_bdev_write_superblock()
393 if (raid_bdev->sb_io_buf == NULL) { in raid_bdev_write_superblock()
394 rc = raid_bdev_alloc_sb_io_buf(raid_bdev); in raid_bdev_write_superblock()
406 ctx->raid_bdev = raid_bdev; in raid_bdev_write_superblock()
407 ctx->remaining = raid_bdev->num_base_bdevs + 1; in raid_bdev_write_superblock()
414 if (spdk_bdev_is_md_interleaved(&raid_bdev->bdev)) { in raid_bdev_write_superblock()
418 for (i = 0; i < raid_bdev->sb_io_buf_size / raid_bdev->bdev.blocklen; i++) { in raid_bdev_write_superblock()
419 memcpy(raid_bdev->sb_io_buf + (i * raid_bdev->bdev.blocklen), in raid_bdev_write_superblock()
427 cb(rc, raid_bdev, cb_ctx); in raid_bdev_write_superblock()