X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Flod%2Flod_lov.c;h=bb8e3cf292f783a8063155fc36162ad524bb39ac;hp=aafb4a6491c2b7caa6fc6422f50d28b028c8a2da;hb=5e6a30cc2f344e38dd11ef3db1eb23c1705d8f32;hpb=ff5eb304fa371d879da38621fac3aec7d4548a5e diff --git a/lustre/lod/lod_lov.c b/lustre/lod/lod_lov.c index aafb4a6..bb8e3cf 100644 --- a/lustre/lod/lod_lov.c +++ b/lustre/lod/lod_lov.c @@ -1013,6 +1013,9 @@ int lod_generate_lovea(const struct lu_env *env, struct lod_object *lo, if (lod_comp->llc_flags & LCME_FL_NOSYNC) lcme->lcme_timestamp = cpu_to_le64(lod_comp->llc_timestamp); + if (lod_comp->llc_flags & LCME_FL_EXTENSION) + lcm->lcm_magic = cpu_to_le32(LOV_MAGIC_SEL); + lcme->lcme_extent.e_start = cpu_to_le64(lod_comp->llc_extent.e_start); lcme->lcme_extent.e_end = @@ -1270,7 +1273,8 @@ int lod_parse_striping(const struct lu_env *env, struct lod_object *lo, magic = le32_to_cpu(lmm->lmm_magic); if (magic != LOV_MAGIC_V1 && magic != LOV_MAGIC_V3 && - magic != LOV_MAGIC_COMP_V1 && magic != LOV_MAGIC_FOREIGN) + magic != LOV_MAGIC_COMP_V1 && magic != LOV_MAGIC_FOREIGN && + magic != LOV_MAGIC_SEL) GOTO(out, rc = -EINVAL); if (lo->ldo_is_foreign) @@ -1278,7 +1282,7 @@ int lod_parse_striping(const struct lu_env *env, struct lod_object *lo, else lod_free_comp_entries(lo); - if (magic == LOV_MAGIC_COMP_V1) { + if (magic == LOV_MAGIC_COMP_V1 || magic == LOV_MAGIC_SEL) { comp_v1 = (struct lov_comp_md_v1 *)lmm; comp_cnt = le16_to_cpu(comp_v1->lcm_entry_count); if (comp_cnt == 0) @@ -2195,13 +2199,14 @@ int lod_pools_init(struct lod_device *lod, struct lustre_cfg *lcfg) INIT_LIST_HEAD(&lod->lod_qos.lq_svr_list); init_rwsem(&lod->lod_qos.lq_rw_sem); lod->lod_qos.lq_dirty = 1; - lod->lod_qos.lq_rr.lqr_dirty = 1; lod->lod_qos.lq_reset = 1; /* Default priority is toward free space balance */ lod->lod_qos.lq_prio_free = 232; /* Default threshold for rr (roughly 17%) */ lod->lod_qos.lq_threshold_rr = 43; + lu_qos_rr_init(&lod->lod_qos.lq_rr); + /* Set up OST pool environment */ lod->lod_pools_hash_body = cfs_hash_create("POOLS", HASH_POOLS_CUR_BITS, HASH_POOLS_MAX_BITS, @@ -2218,7 +2223,6 @@ int lod_pools_init(struct lod_device *lod, struct lustre_cfg *lcfg) rc = lod_ost_pool_init(&lod->lod_pool_info, 0); if (rc) GOTO(out_hash, rc); - lod_qos_rr_init(&lod->lod_qos.lq_rr); rc = lod_ost_pool_init(&lod->lod_qos.lq_rr.lqr_pool, 0); if (rc) GOTO(out_pool_info, rc);