From 22da3f971ea684b26beb2c3c0fb88b75600bc18e Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Tue, 10 Dec 2013 15:21:01 -0600 Subject: [PATCH] LU-2675 lod: remove lov and lod stuff from obd.h Remove QOS related data structures from obd.h to the lod_internal.h. Remove the unused functions lov_stripe_md_cmp() and lov_lum_lsm_cmp(). Remove the declarations of several functions that no longer exist. Move lov_lum_swab_if_needed() to the one file that uses it. Signed-off-by: John L. Hammond Change-Id: I59874eda50aa333e5e991090fa3ac538ff8dc0f3 Reviewed-on: http://review.whamcloud.com/8687 Tested-by: Jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Jinshan Xiong --- lustre/include/obd.h | 138 ---------------------------------------------- lustre/lod/lod_internal.h | 60 +++++++++++++++++++- lustre/lod/lod_lov.c | 15 ++--- lustre/lod/lod_pool.c | 2 +- lustre/lod/lod_qos.c | 14 ++--- lustre/lov/lov_internal.h | 29 ++++++---- lustre/lov/lov_obd.c | 2 - lustre/lov/lov_pack.c | 29 ++++++++++ lustre/lov/lov_pool.c | 19 +------ 9 files changed, 121 insertions(+), 187 deletions(-) diff --git a/lustre/include/obd.h b/lustre/include/obd.h index 03ccfea..aceab76 100644 --- a/lustre/include/obd.h +++ b/lustre/include/obd.h @@ -181,71 +181,6 @@ struct obd_info { char *oi_jobid; }; -/* compare all relevant fields. */ -static inline int lov_stripe_md_cmp(struct lov_stripe_md *m1, - struct lov_stripe_md *m2) -{ - /* - * ->lsm_wire contains padding, but it should be zeroed out during - * allocation. - */ - return memcmp(&m1->lsm_wire, &m2->lsm_wire, sizeof m1->lsm_wire); -} - -static inline int lov_lum_lsm_cmp(struct lov_user_md *lum, - struct lov_stripe_md *lsm) -{ - if (lsm->lsm_magic != lum->lmm_magic) - return 1; - if ((lsm->lsm_stripe_count != 0) && (lum->lmm_stripe_count != 0) && - (lsm->lsm_stripe_count != lum->lmm_stripe_count)) - return 2; - if ((lsm->lsm_stripe_size != 0) && (lum->lmm_stripe_size != 0) && - (lsm->lsm_stripe_size != lum->lmm_stripe_size)) - return 3; - if ((lsm->lsm_pattern != 0) && (lum->lmm_pattern != 0) && - (lsm->lsm_pattern != lum->lmm_pattern)) - return 4; - if ((lsm->lsm_magic == LOV_MAGIC_V3) && - (strncmp(lsm->lsm_pool_name, - ((struct lov_user_md_v3 *)lum)->lmm_pool_name, - LOV_MAXPOOLNAME) != 0)) - return 5; - return 0; -} - -static inline int lov_lum_swab_if_needed(struct lov_user_md_v3 *lumv3, - int *lmm_magic, - struct lov_user_md *lum) -{ - if (lum && copy_from_user(lumv3, lum, sizeof(struct lov_user_md_v1))) - return -EFAULT; - - *lmm_magic = lumv3->lmm_magic; - - if (*lmm_magic == __swab32(LOV_USER_MAGIC_V1)) { - lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lumv3); - *lmm_magic = LOV_USER_MAGIC_V1; - } else if (*lmm_magic == LOV_USER_MAGIC_V3) { - if (lum && copy_from_user(lumv3, lum, sizeof(*lumv3))) - return -EFAULT; - } else if (*lmm_magic == __swab32(LOV_USER_MAGIC_V3)) { - if (lum && copy_from_user(lumv3, lum, sizeof(*lumv3))) - return -EFAULT; - lustre_swab_lov_user_md_v3(lumv3); - *lmm_magic = LOV_USER_MAGIC_V3; - } else if (*lmm_magic != LOV_USER_MAGIC_V1) { - CDEBUG(D_IOCTL, - "bad userland LOV MAGIC: %#08x != %#08x nor %#08x\n", - *lmm_magic, LOV_USER_MAGIC_V1, LOV_USER_MAGIC_V3); - return -EINVAL; - } - return 0; -} - -void lov_stripe_lock(struct lov_stripe_md *md); -void lov_stripe_unlock(struct lov_stripe_md *md); - struct obd_type { cfs_list_t typ_chain; struct obd_ops *typ_dt_ops; @@ -461,25 +396,6 @@ struct echo_client_obd { __u64 ec_unique; }; -struct lov_qos_oss { - struct obd_uuid lqo_uuid; /* ptlrpc's c_remote_uuid */ - cfs_list_t lqo_oss_list; /* link to lov_qos */ - __u64 lqo_bavail; /* total bytes avail on OSS */ - __u64 lqo_penalty; /* current penalty */ - __u64 lqo_penalty_per_obj;/* penalty decrease every obj*/ - time_t lqo_used; /* last used time, seconds */ - __u32 lqo_ost_count; /* number of osts on this oss */ -}; - -struct ltd_qos { - struct lov_qos_oss *ltq_oss; /* oss info */ - __u64 ltq_penalty; /* current penalty */ - __u64 ltq_penalty_per_obj; /* penalty decrease every obj*/ - __u64 ltq_weight; /* net weighting */ - time_t ltq_used; /* last used time, seconds */ - unsigned int ltq_usable:1; /* usable for striping */ -}; - /* Generic subset of OSTs */ struct ost_pool { __u32 *op_array; /* array of index of @@ -489,48 +405,14 @@ struct ost_pool { struct rw_semaphore op_rw_sem; /* to protect ost_pool use */ }; -/* Round-robin allocator data */ -struct lov_qos_rr { - __u32 lqr_start_idx; /* start index of new inode */ - __u32 lqr_offset_idx; /* aliasing for start_idx */ - int lqr_start_count; /* reseed counter */ - struct ost_pool lqr_pool; /* round-robin optimized list */ - unsigned long lqr_dirty:1; /* recalc round-robin list */ -}; - /* allow statfs data caching for 1 second */ #define OBD_STATFS_CACHE_SECONDS 1 -struct lov_statfs_data { - struct obd_info lsd_oi; - struct obd_statfs lsd_statfs; -}; -/* Stripe placement optimization */ -struct lov_qos { - cfs_list_t lq_oss_list; /* list of OSSs that targets use */ - struct rw_semaphore lq_rw_sem; - __u32 lq_active_oss_count; - unsigned int lq_prio_free; /* priority for free space */ - unsigned int lq_threshold_rr;/* priority for rr */ - struct lov_qos_rr lq_rr; /* round robin qos data */ - unsigned long lq_dirty:1, /* recalc qos data */ - lq_same_space:1,/* the ost's all have approx. - the same space avail */ - lq_reset:1, /* zero current penalties */ - lq_statfs_in_progress:1; /* statfs op in - progress */ - /* qos statfs data */ - struct lov_statfs_data *lq_statfs_data; - wait_queue_head_t lq_statfs_waitq; /* waitqueue to notify statfs - * requests completion */ -}; - struct lov_tgt_desc { cfs_list_t ltd_kill; struct obd_uuid ltd_uuid; struct obd_device *ltd_obd; struct obd_export *ltd_exp; - struct ltd_qos ltd_qos; /* qos info per target */ __u32 ltd_gen; __u32 ltd_index; /* index in lov_obd->tgts */ unsigned long ltd_active:1,/* is this target up for requests */ @@ -538,24 +420,6 @@ struct lov_tgt_desc { ltd_reap:1; /* should this target be deleted */ }; -/* Pool metadata */ -#define pool_tgt_size(_p) _p->pool_obds.op_size -#define pool_tgt_count(_p) _p->pool_obds.op_count -#define pool_tgt_array(_p) _p->pool_obds.op_array -#define pool_tgt_rw_sem(_p) _p->pool_obds.op_rw_sem - -struct pool_desc { - char pool_name[LOV_MAXPOOLNAME + 1]; /* name of pool */ - struct ost_pool pool_obds; /* pool members */ - cfs_atomic_t pool_refcount; /* pool ref. counter */ - struct lov_qos_rr pool_rr; /* round robin qos */ - cfs_hlist_node_t pool_hash; /* access by poolname */ - cfs_list_t pool_list; /* serial access */ - cfs_proc_dir_entry_t *pool_proc_entry; /* file in /proc */ - struct obd_device *pool_lobd; /* obd of the lov/lod to which - * this pool belongs */ -}; - struct lov_obd { struct lov_desc desc; struct lov_tgt_desc **lov_tgts; /* sparse array */ @@ -564,8 +428,6 @@ struct lov_obd { struct mutex lov_lock; struct obd_connect_data lov_ocd; cfs_atomic_t lov_refcount; - __u32 lov_tgt_count; /* how many OBD's */ - __u32 lov_active_tgt_count; /* how many active */ __u32 lov_death_row;/* tgts scheduled to be deleted */ __u32 lov_tgt_size; /* size of tgts array */ int lov_connects; diff --git a/lustre/lod/lod_internal.h b/lustre/lod/lod_internal.h index 0dd077b..ab4b274 100644 --- a/lustre/lod/lod_internal.h +++ b/lustre/lod/lod_internal.h @@ -45,6 +45,64 @@ #define LOV_USES_ASSIGNED_STRIPE 0 #define LOV_USES_DEFAULT_STRIPE 1 +struct lod_qos_rr { + __u32 lqr_start_idx; /* start index of new inode */ + __u32 lqr_offset_idx; /* aliasing for start_idx */ + int lqr_start_count; /* reseed counter */ + struct ost_pool lqr_pool; /* round-robin optimized list */ + unsigned long lqr_dirty:1; /* recalc round-robin list */ +}; + +struct pool_desc { + char pool_name[LOV_MAXPOOLNAME + 1]; + struct ost_pool pool_obds; /* pool members */ + atomic_t pool_refcount; + struct lod_qos_rr pool_rr; + cfs_hlist_node_t pool_hash; /* access by poolname */ + struct list_head pool_list; + struct proc_dir_entry *pool_proc_entry; + struct obd_device *pool_lobd; /* owner */ +}; + +#define pool_tgt_size(p) ((p)->pool_obds.op_size) +#define pool_tgt_count(p) ((p)->pool_obds.op_count) +#define pool_tgt_array(p) ((p)->pool_obds.op_array) +#define pool_tgt_rw_sem(p) ((p)->pool_obds.op_rw_sem) + +struct lod_qos { + struct list_head lq_oss_list; + struct rw_semaphore lq_rw_sem; + __u32 lq_active_oss_count; + unsigned int lq_prio_free; /* priority for free space */ + unsigned int lq_threshold_rr;/* priority for rr */ + struct lod_qos_rr lq_rr; /* round robin qos data */ + bool lq_dirty:1, /* recalc qos data */ + lq_same_space:1,/* the ost's all have approx. + the same space avail */ + lq_reset:1; /* zero current penalties */ +}; + +struct lod_qos_oss { + struct obd_uuid lqo_uuid; /* ptlrpc's c_remote_uuid */ + struct list_head lqo_oss_list; /* link to lov_qos */ + __u64 lqo_bavail; /* total bytes avail on OSS */ + __u64 lqo_penalty; /* current penalty */ + __u64 lqo_penalty_per_obj; /* penalty decrease + every obj*/ + time_t lqo_used; /* last used time, seconds */ + __u32 lqo_ost_count; /* number of osts on this oss */ +}; + +struct ltd_qos { + struct lod_qos_oss *ltq_oss; /* oss info */ + __u64 ltq_penalty; /* current penalty */ + __u64 ltq_penalty_per_obj; /* penalty decrease + every obj*/ + __u64 ltq_weight; /* net weighting */ + time_t ltq_used; /* last used time, seconds */ + bool ltq_usable:1; /* usable for striping */ +}; + struct lod_tgt_desc { struct dt_device *ltd_tgt; struct list_head ltd_kill; @@ -119,7 +177,7 @@ struct lod_device { * structure should be moved to lod_tgt_descs as well. */ /* QoS info per LOD */ - struct lov_qos lod_qos; /* qos info per lod */ + struct lod_qos lod_qos; /* qos info per lod */ /* OST pool data */ struct ost_pool lod_pool_info; /* all OSTs in a packed array */ diff --git a/lustre/lod/lod_lov.c b/lustre/lod/lod_lov.c index 20fd4ea..038e0df 100644 --- a/lustre/lod/lod_lov.c +++ b/lustre/lod/lod_lov.c @@ -1076,11 +1076,6 @@ int lod_pools_init(struct lod_device *lod, struct lustre_cfg *lcfg) lod->lod_qos.lq_prio_free = 232; /* Default threshold for rr (roughly 17%) */ lod->lod_qos.lq_threshold_rr = 43; - /* Init statfs fields */ - OBD_ALLOC_PTR(lod->lod_qos.lq_statfs_data); - if (NULL == lod->lod_qos.lq_statfs_data) - RETURN(-ENOMEM); - init_waitqueue_head(&lod->lod_qos.lq_statfs_waitq); /* Set up OST pool environment */ lod->lod_pools_hash_body = cfs_hash_create("POOLS", HASH_POOLS_CUR_BITS, @@ -1090,8 +1085,9 @@ int lod_pools_init(struct lod_device *lod, struct lustre_cfg *lcfg) CFS_HASH_MAX_THETA, &pool_hash_operations, CFS_HASH_DEFAULT); - if (!lod->lod_pools_hash_body) - GOTO(out_statfs, rc = -ENOMEM); + if (lod->lod_pools_hash_body == NULL) + RETURN(-ENOMEM); + CFS_INIT_LIST_HEAD(&lod->lod_pool_list); lod->lod_pool_count = 0; rc = lod_ost_pool_init(&lod->lod_pool_info, 0); @@ -1107,8 +1103,7 @@ out_pool_info: lod_ost_pool_free(&lod->lod_pool_info); out_hash: cfs_hash_putref(lod->lod_pools_hash_body); -out_statfs: - OBD_FREE_PTR(lod->lod_qos.lq_statfs_data); + return rc; } @@ -1132,7 +1127,7 @@ int lod_pools_fini(struct lod_device *lod) cfs_hash_putref(lod->lod_pools_hash_body); lod_ost_pool_free(&(lod->lod_qos.lq_rr.lqr_pool)); lod_ost_pool_free(&lod->lod_pool_info); - OBD_FREE_PTR(lod->lod_qos.lq_statfs_data); + RETURN(0); } diff --git a/lustre/lod/lod_pool.c b/lustre/lod/lod_pool.c index e33ae4d..98b2416 100644 --- a/lustre/lod/lod_pool.c +++ b/lustre/lod/lod_pool.c @@ -452,7 +452,7 @@ int lod_pool_new(struct obd_device *obd, char *poolname) if (rc) GOTO(out_err, rc); - memset(&(new_pool->pool_rr), 0, sizeof(struct lov_qos_rr)); + memset(&new_pool->pool_rr, 0, sizeof(new_pool->pool_rr)); rc = lod_ost_pool_init(&new_pool->pool_rr.lqr_pool, 0); if (rc) GOTO(out_free_pool_obds, rc); diff --git a/lustre/lod/lod_qos.c b/lustre/lod/lod_qos.c index 51d6603..269e4ca 100644 --- a/lustre/lod/lod_qos.c +++ b/lustre/lod/lod_qos.c @@ -61,7 +61,7 @@ int qos_add_tgt(struct lod_device *lod, struct lod_tgt_desc *ost_desc) { - struct lov_qos_oss *oss = NULL, *temposs; + struct lod_qos_oss *oss = NULL, *temposs; struct obd_export *exp = ost_desc->ltd_exp; int rc = 0, found = 0; cfs_list_t *list; @@ -120,7 +120,7 @@ out: int qos_del_tgt(struct lod_device *lod, struct lod_tgt_desc *ost_desc) { - struct lov_qos_oss *oss; + struct lod_qos_oss *oss; int rc = 0; ENTRY; @@ -238,7 +238,7 @@ out: depends on size of each ost in an oss */ static int lod_qos_calc_ppo(struct lod_device *lod) { - struct lov_qos_oss *oss; + struct lod_qos_oss *oss; __u64 ba_max, ba_min, temp; __u32 num_active; int rc, i, prio_wide; @@ -371,7 +371,7 @@ static int lod_qos_used(struct lod_device *lod, struct ost_pool *osts, __u32 index, __u64 *total_wt) { struct lod_tgt_desc *ost; - struct lov_qos_oss *oss; + struct lod_qos_oss *oss; int j; ENTRY; @@ -447,9 +447,9 @@ static int lod_qos_used(struct lod_device *lod, struct ost_pool *osts, #define LOV_QOS_EMPTY ((__u32)-1) /* compute optimal round-robin order, based on OSTs per OSS */ static int lod_qos_calc_rr(struct lod_device *lod, struct ost_pool *src_pool, - struct lov_qos_rr *lqr) + struct lod_qos_rr *lqr) { - struct lov_qos_oss *oss; + struct lod_qos_oss *oss; struct lod_tgt_desc *ost; unsigned placed, real_count; int i, rc; @@ -671,7 +671,7 @@ static int lod_alloc_rr(const struct lu_env *env, struct lod_object *lo, struct obd_statfs *sfs = &lod_env_info(env)->lti_osfs; struct pool_desc *pool = NULL; struct ost_pool *osts; - struct lov_qos_rr *lqr; + struct lod_qos_rr *lqr; struct dt_object *o; unsigned array_idx; int i, rc; diff --git a/lustre/lov/lov_internal.h b/lustre/lov/lov_internal.h index 90644fa..440ee7d 100644 --- a/lustre/lov/lov_internal.h +++ b/lustre/lov/lov_internal.h @@ -41,6 +41,21 @@ #include #include +#define pool_tgt_size(p) ((p)->pool_obds.op_size) +#define pool_tgt_count(p) ((p)->pool_obds.op_count) +#define pool_tgt_array(p) ((p)->pool_obds.op_array) +#define pool_tgt_rw_sem(p) ((p)->pool_obds.op_rw_sem) + +struct pool_desc { + char pool_name[LOV_MAXPOOLNAME + 1]; + struct ost_pool pool_obds; + atomic_t pool_refcount; + cfs_hlist_node_t pool_hash; /* access by poolname */ + struct list_head pool_list; /* serial access */ + struct proc_dir_entry *pool_proc_entry; + struct obd_device *pool_lobd; /* owner */ +}; + struct lov_lock_handles { struct portals_handle llh_handle; cfs_atomic_t llh_refcount; @@ -155,18 +170,6 @@ int lov_stripe_intersects(struct lov_stripe_md *lsm, int stripeno, obd_off *obd_start, obd_off *obd_end); int lov_stripe_number(struct lov_stripe_md *lsm, obd_off lov_off); -/* lov_qos.c */ -#define LOV_USES_ASSIGNED_STRIPE 0 -#define LOV_USES_DEFAULT_STRIPE 1 -int qos_add_tgt(struct obd_device *obd, __u32 index); -int qos_del_tgt(struct obd_device *obd, struct lov_tgt_desc *tgt); -void qos_shrink_lsm(struct lov_request_set *set); -int qos_prep_create(struct obd_export *exp, struct lov_request_set *set); -void qos_update(struct lov_obd *lov); -void qos_statfs_done(struct lov_obd *lov); -void qos_statfs_update(struct obd_device *obd, __u64 max_age, int wait); -int qos_remedy_create(struct lov_request_set *set, struct lov_request *req); - /* lov_request.c */ void lov_set_add_req(struct lov_request *req, struct lov_request_set *set); int lov_set_finished(struct lov_request_set *set, int idempotent); @@ -236,6 +239,8 @@ int lov_fini_statfs_set(struct lov_request_set *set); int lov_statfs_interpret(struct ptlrpc_request_set *rqset, void *data, int rc); /* lov_obd.c */ +void lov_stripe_lock(struct lov_stripe_md *md); +void lov_stripe_unlock(struct lov_stripe_md *md); void lov_fix_desc(struct lov_desc *desc); void lov_fix_desc_stripe_size(__u64 *val); void lov_fix_desc_stripe_count(__u32 *val); diff --git a/lustre/lov/lov_obd.c b/lustre/lov/lov_obd.c index 101ce81..ba32493 100644 --- a/lustre/lov/lov_obd.c +++ b/lustre/lov/lov_obd.c @@ -2720,7 +2720,6 @@ void lov_stripe_lock(struct lov_stripe_md *md) LASSERT(md->lsm_lock_owner == 0); md->lsm_lock_owner = current_pid(); } -EXPORT_SYMBOL(lov_stripe_lock); void lov_stripe_unlock(struct lov_stripe_md *md) { @@ -2728,7 +2727,6 @@ void lov_stripe_unlock(struct lov_stripe_md *md) md->lsm_lock_owner = 0; spin_unlock(&md->lsm_lock); } -EXPORT_SYMBOL(lov_stripe_unlock); static int lov_quotactl(struct obd_device *obd, struct obd_export *exp, struct obd_quotactl *oqctl) diff --git a/lustre/lov/lov_pack.c b/lustre/lov/lov_pack.c index 39e63f4..bf36c99 100644 --- a/lustre/lov/lov_pack.c +++ b/lustre/lov/lov_pack.c @@ -409,6 +409,35 @@ int lov_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp, RETURN(lsm_size); } +static inline int lov_lum_swab_if_needed(struct lov_user_md_v3 *lumv3, + int *lmm_magic, + struct lov_user_md *lum) +{ + if (lum && copy_from_user(lumv3, lum, sizeof(struct lov_user_md_v1))) + return -EFAULT; + + *lmm_magic = lumv3->lmm_magic; + + if (*lmm_magic == __swab32(LOV_USER_MAGIC_V1)) { + lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lumv3); + *lmm_magic = LOV_USER_MAGIC_V1; + } else if (*lmm_magic == LOV_USER_MAGIC_V3) { + if (lum && copy_from_user(lumv3, lum, sizeof(*lumv3))) + return -EFAULT; + } else if (*lmm_magic == __swab32(LOV_USER_MAGIC_V3)) { + if (lum && copy_from_user(lumv3, lum, sizeof(*lumv3))) + return -EFAULT; + lustre_swab_lov_user_md_v3(lumv3); + *lmm_magic = LOV_USER_MAGIC_V3; + } else if (*lmm_magic != LOV_USER_MAGIC_V1) { + CDEBUG(D_IOCTL, + "bad userland LOV MAGIC: %#08x != %#08x nor %#08x\n", + *lmm_magic, LOV_USER_MAGIC_V1, LOV_USER_MAGIC_V3); + return -EINVAL; + } + return 0; +} + static int __lov_setstripe(struct obd_export *exp, int max_lmm_size, struct lov_stripe_md **lsmp, struct lov_user_md *lump) diff --git a/lustre/lov/lov_pool.c b/lustre/lov/lov_pool.c index 32639f0..2c16d9d 100644 --- a/lustre/lov/lov_pool.c +++ b/lustre/lov/lov_pool.c @@ -69,7 +69,6 @@ void lov_pool_putref(struct pool_desc *pool) LASSERT(cfs_hlist_unhashed(&pool->pool_hash)); LASSERT(cfs_list_empty(&pool->pool_list)); LASSERT(pool->pool_proc_entry == NULL); - lov_ost_pool_free(&(pool->pool_rr.lqr_pool)); lov_ost_pool_free(&(pool->pool_obds)); OBD_FREE_PTR(pool); EXIT; @@ -460,11 +459,6 @@ int lov_pool_new(struct obd_device *obd, char *poolname) if (rc) GOTO(out_err, rc); - memset(&(new_pool->pool_rr), 0, sizeof(struct lov_qos_rr)); - rc = lov_ost_pool_init(&new_pool->pool_rr.lqr_pool, 0); - if (rc) - GOTO(out_free_pool_obds, rc); - CFS_INIT_HLIST_NODE(&new_pool->pool_hash); #ifdef LPROCFS @@ -507,14 +501,11 @@ out_err: cfs_list_del_init(&new_pool->pool_list); lov->lov_pool_count--; spin_unlock(&obd->obd_dev_lock); - lprocfs_remove(&new_pool->pool_proc_entry); + lov_ost_pool_free(&new_pool->pool_obds); + OBD_FREE_PTR(new_pool); - lov_ost_pool_free(&new_pool->pool_rr.lqr_pool); -out_free_pool_obds: - lov_ost_pool_free(&new_pool->pool_obds); - OBD_FREE_PTR(new_pool); - return rc; + return rc; } int lov_pool_del(struct obd_device *obd, char *poolname) @@ -583,8 +574,6 @@ int lov_pool_add(struct obd_device *obd, char *poolname, char *ostname) if (rc) GOTO(out, rc); - pool->pool_rr.lqr_dirty = 1; - CDEBUG(D_CONFIG, "Added %s to "LOV_POOLNAMEF" as member %d\n", ostname, poolname, pool_tgt_count(pool)); @@ -629,8 +618,6 @@ int lov_pool_remove(struct obd_device *obd, char *poolname, char *ostname) lov_ost_pool_remove(&pool->pool_obds, lov_idx); - pool->pool_rr.lqr_dirty = 1; - CDEBUG(D_CONFIG, "%s removed from "LOV_POOLNAMEF"\n", ostname, poolname); -- 1.8.3.1