Commit ddf5a8da authored by Damiano Cipriani's avatar Damiano Cipriani Committed by Tomasz Zawadzki
Browse files

blobstore: Add function to get io_unit per cluster



This function returns the number of io_units per cluster

Signed-off-by: default avatarDamiano Cipriani <damiano.cipriani@suse.com>
Change-Id: I8f33d24a63876a0a918830b9eeaa69a91ff21193
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14431


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
parent 2de48534
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -531,6 +531,21 @@ bs_cluster_to_extent_page(struct spdk_blob *blob, uint64_t cluster_num)
	return &blob->active.extent_pages[extent_table_id];
}

static inline uint64_t
bs_io_units_per_cluster(struct spdk_blob *blob)
{
	uint64_t	io_units_per_cluster;
	uint8_t		shift = blob->bs->pages_per_cluster_shift;

	if (shift != 0) {
		io_units_per_cluster = bs_io_unit_per_page(blob->bs) << shift;
	} else {
		io_units_per_cluster = bs_io_unit_per_page(blob->bs) * blob->bs->pages_per_cluster;
	}

	return io_units_per_cluster;
}

/* End basic conversions */

static inline uint64_t
@@ -591,13 +606,8 @@ static inline uint32_t
bs_num_io_units_to_cluster_boundary(struct spdk_blob *blob, uint64_t io_unit)
{
	uint64_t	io_units_per_cluster;
	uint8_t		shift = blob->bs->pages_per_cluster_shift;

	if (shift != 0) {
		io_units_per_cluster = bs_io_unit_per_page(blob->bs) << shift;
	} else {
		io_units_per_cluster = bs_io_unit_per_page(blob->bs) * blob->bs->pages_per_cluster;
	}
	io_units_per_cluster = bs_io_units_per_cluster(blob);

	return io_units_per_cluster - (io_unit % io_units_per_cluster);
}