Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb507bc1 authored by Boaz Harrosh's avatar Boaz Harrosh
Browse files

ore: Make ore_striping_info and ore_calc_stripe_info public



The struct ore_striping_info will be used later in other
structures. And ore_calc_stripe_info as well. Rename them
make struct ore_striping_info public. ore_calc_stripe_info
is still static, will be made public on first use.

Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
parent 8d2d83a8
Loading
Loading
Loading
Loading
+8 −16
Original line number Diff line number Diff line
@@ -287,16 +287,8 @@ EXPORT_SYMBOL(ore_check_io);
 *
 *	O = L % stripe_unit + N * stripe_unit + M * group_depth * stripe_unit
 */
struct _striping_info {
	u64 obj_offset;
	u64 group_length;
	u64 M; /* for truncate */
	unsigned dev;
	unsigned unit_off;
};

static void _calc_stripe_info(struct ore_layout *layout, u64 file_offset,
			      struct _striping_info *si)
static void ore_calc_stripe_info(struct ore_layout *layout, u64 file_offset,
				 struct ore_striping_info *si)
{
	u32	stripe_unit = layout->stripe_unit;
	u32	group_width = layout->group_width;
@@ -375,7 +367,7 @@ static int _add_stripe_unit(struct ore_io_state *ios, unsigned *cur_pg,
}

static int _prepare_one_group(struct ore_io_state *ios, u64 length,
			      struct _striping_info *si)
			      struct ore_striping_info *si)
{
	unsigned stripe_unit = ios->layout->stripe_unit;
	unsigned mirrors_p1 = ios->layout->mirrors_p1;
@@ -434,14 +426,14 @@ static int _prepare_for_striping(struct ore_io_state *ios)
{
	u64 length = ios->length;
	u64 offset = ios->offset;
	struct _striping_info si;
	struct ore_striping_info si;
	int ret = 0;

	if (!ios->pages) {
		if (ios->kern_buff) {
			struct ore_per_dev_state *per_dev = &ios->per_dev[0];

			_calc_stripe_info(ios->layout, ios->offset, &si);
			ore_calc_stripe_info(ios->layout, ios->offset, &si);
			per_dev->offset = si.obj_offset;
			per_dev->dev = si.dev;

@@ -455,7 +447,7 @@ static int _prepare_for_striping(struct ore_io_state *ios)
	}

	while (length) {
		_calc_stripe_info(ios->layout, offset, &si);
		ore_calc_stripe_info(ios->layout, offset, &si);

		if (length < si.group_length)
			si.group_length = length;
@@ -744,7 +736,7 @@ static int _truncate_mirrors(struct ore_io_state *ios, unsigned cur_comp,
}

struct _trunc_info {
	struct _striping_info si;
	struct ore_striping_info si;
	u64 prev_group_obj_off;
	u64 next_group_obj_off;

@@ -758,7 +750,7 @@ static void _calc_trunk_info(struct ore_layout *layout, u64 file_offset,
{
	unsigned stripe_unit = layout->stripe_unit;

	_calc_stripe_info(layout, file_offset, &ti->si);
	ore_calc_stripe_info(layout, file_offset, &ti->si);

	ti->prev_group_obj_off = ti->si.M * stripe_unit;
	ti->next_group_obj_off = ti->si.M ? (ti->si.M - 1) * stripe_unit : 0;
+8 −0
Original line number Diff line number Diff line
@@ -56,6 +56,14 @@ struct ore_components {
	struct osd_dev	**ods;			/* osd_dev array              */
};

struct ore_striping_info {
	u64 obj_offset;
	u64 group_length;
	u64 M; /* for truncate */
	unsigned dev;
	unsigned unit_off;
};

struct ore_io_state;
typedef void (*ore_io_done_fn)(struct ore_io_state *ios, void *private);