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

Commit db098ec4 authored by Ilya Dryomov's avatar Ilya Dryomov
Browse files

libceph: always populate t->target_{oid,oloc} in calc_target()



need_check_tiering logic doesn't make a whole lot of sense.  Drop it
and apply tiering unconditionally on every calc_target() call instead.

Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent 04c7d789
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -1330,7 +1330,6 @@ static enum calc_target_result calc_target(struct ceph_osd_client *osdc,
	bool unpaused = false;
	bool legacy_change;
	bool split = false;
	bool need_check_tiering = false;
	bool sort_bitwise = ceph_osdmap_flag(osdc, CEPH_OSDMAP_SORTBITWISE);
	enum calc_target_result ct_res;
	int ret;
@@ -1351,17 +1350,11 @@ static enum calc_target_result calc_target(struct ceph_osd_client *osdc,
			force_resend = true;
		}
	}
	if (ceph_oid_empty(&t->target_oid) || force_resend) {

	/* apply tiering */
	ceph_oid_copy(&t->target_oid, &t->base_oid);
		need_check_tiering = true;
	}
	if (ceph_oloc_empty(&t->target_oloc) || force_resend) {
	ceph_oloc_copy(&t->target_oloc, &t->base_oloc);
		need_check_tiering = true;
	}

	if (need_check_tiering &&
	    (t->flags & CEPH_OSD_FLAG_IGNORE_OVERLAY) == 0) {
	if ((t->flags & CEPH_OSD_FLAG_IGNORE_OVERLAY) == 0) {
		if (t->flags & CEPH_OSD_FLAG_READ && pi->read_tier >= 0)
			t->target_oloc.pool = pi->read_tier;
		if (t->flags & CEPH_OSD_FLAG_WRITE && pi->write_tier >= 0)