X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Flod%2Flod_lov.c;h=067a8443bd699c31ac39c397bd861636b95e6f8b;hp=d8236512dd82c97f482d9d195163ad3adab87fc4;hb=f5ecf580adc319fd9abe41bd79389b50015d5c13;hpb=df70a5c8938888686188cfc63748011f8c7557e0 diff --git a/lustre/lod/lod_lov.c b/lustre/lod/lod_lov.c index d823651..067a844 100644 --- a/lustre/lod/lod_lov.c +++ b/lustre/lod/lod_lov.c @@ -22,6 +22,8 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved * Use is subject to license terms. + * + * Copyright (c) 2012, Intel Corporation. */ /* * lustre/lod/lod_lov.c @@ -48,10 +50,10 @@ */ void lod_getref(struct lod_device *lod) { - cfs_down_read(&lod->lod_rw_sem); - cfs_mutex_lock(&lod->lod_mutex); + down_read(&lod->lod_rw_sem); + mutex_lock(&lod->lod_mutex); lod->lod_refcount++; - cfs_mutex_unlock(&lod->lod_mutex); + mutex_unlock(&lod->lod_mutex); } /* @@ -63,7 +65,7 @@ void lod_getref(struct lod_device *lod) */ void lod_putref(struct lod_device *lod) { - cfs_mutex_lock(&lod->lod_mutex); + mutex_lock(&lod->lod_mutex); lod->lod_refcount--; if (lod->lod_refcount == 0 && lod->lod_death_row) { struct lod_ost_desc *ost_desc, *tmp; @@ -90,8 +92,8 @@ void lod_putref(struct lod_device *lod) lod->lod_desc.ld_active_tgt_count--; lod->lod_death_row--; } - cfs_mutex_unlock(&lod->lod_mutex); - cfs_up_read(&lod->lod_rw_sem); + mutex_unlock(&lod->lod_mutex); + up_read(&lod->lod_rw_sem); cfs_list_for_each_entry_safe(ost_desc, tmp, &kill, ltd_kill) { int rc; @@ -110,8 +112,8 @@ void lod_putref(struct lod_device *lod) OBD_FREE_PTR(ost_desc); } } else { - cfs_mutex_unlock(&lod->lod_mutex); - cfs_up_read(&lod->lod_rw_sem); + mutex_unlock(&lod->lod_mutex); + up_read(&lod->lod_rw_sem); } } @@ -123,7 +125,7 @@ static int lod_bitmap_resize(struct lod_device *lod, __u32 newsize) /* grab write reference on the lod. Relocating the array requires * exclusive access */ - cfs_down_write(&lod->lod_rw_sem); + down_write(&lod->lod_rw_sem); if (newsize <= lod->lod_osts_size) /* someone else has already resize the array */ @@ -151,7 +153,7 @@ static int lod_bitmap_resize(struct lod_device *lod, __u32 newsize) EXIT; out: - cfs_up_write(&lod->lod_rw_sem); + up_write(&lod->lod_rw_sem); return rc; } @@ -249,7 +251,7 @@ int lod_add_device(const struct lu_env *env, struct lod_device *lod, lod_getref(lod); } - cfs_mutex_lock(&lod->lod_mutex); + mutex_lock(&lod->lod_mutex); if (cfs_bitmap_check(lod->lod_ost_bitmap, index)) { CERROR("%s: device %d is registered already\n", obd->obd_name, index); @@ -287,7 +289,7 @@ int lod_add_device(const struct lu_env *env, struct lod_device *lod, OST_TGT(lod, index) = ost_desc; cfs_bitmap_set(lod->lod_ost_bitmap, index); lod->lod_ostnr++; - cfs_mutex_unlock(&lod->lod_mutex); + mutex_unlock(&lod->lod_mutex); lod_putref(lod); if (lod->lod_recovery_completed) @@ -298,7 +300,7 @@ int lod_add_device(const struct lu_env *env, struct lod_device *lod, out_pool: lod_ost_pool_remove(&lod->lod_pool_info, index); out_mutex: - cfs_mutex_unlock(&lod->lod_mutex); + mutex_unlock(&lod->lod_mutex); lod_putref(lod); out_desc: OBD_FREE_PTR(ost_desc); @@ -358,7 +360,7 @@ int lod_del_device(const struct lu_env *env, struct lod_device *lod, obd_str2uuid(&uuid, osp); lod_getref(lod); - cfs_mutex_lock(&lod->lod_mutex); + mutex_lock(&lod->lod_mutex); /* check that the index is allocated in the bitmap */ if (!cfs_bitmap_check(lod->lod_ost_bitmap, idx) || !OST_TGT(lod,idx)) { CERROR("%s: device %d is not set up\n", obd->obd_name, idx); @@ -376,7 +378,7 @@ int lod_del_device(const struct lu_env *env, struct lod_device *lod, __lod_del_device(lod, idx); EXIT; out: - cfs_mutex_unlock(&lod->lod_mutex); + mutex_unlock(&lod->lod_mutex); lod_putref(lod); return(rc); } @@ -458,7 +460,7 @@ int lod_generate_and_set_lovea(const struct lu_env *env, objs[i].l_object_id = cpu_to_le64(info->lti_ostid.oi_id); objs[i].l_object_seq = cpu_to_le64(info->lti_ostid.oi_seq); - objs[i].l_ost_gen = cpu_to_le32(1); + objs[i].l_ost_gen = cpu_to_le32(0); objs[i].l_ost_idx = cpu_to_le32(fid_idif_ost_idx(fid)); } @@ -846,7 +848,6 @@ void lod_fix_desc(struct lov_desc *desc) int lod_pools_init(struct lod_device *lod, struct lustre_cfg *lcfg) { - struct lprocfs_static_vars lvars = { 0 }; struct obd_device *obd; struct lov_desc *desc; int rc; @@ -890,7 +891,7 @@ int lod_pools_init(struct lod_device *lod, struct lustre_cfg *lcfg) /* Set up allocation policy (QoS and RR) */ CFS_INIT_LIST_HEAD(&lod->lod_qos.lq_oss_list); - cfs_init_rwsem(&lod->lod_qos.lq_rw_sem); + 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; @@ -932,35 +933,8 @@ int lod_pools_init(struct lod_device *lod, struct lustre_cfg *lcfg) lod->lod_death_row = 0; lod->lod_refcount = 0; - lprocfs_lod_init_vars(&lvars); - lprocfs_obd_setup(obd, lvars.obd_vars); - -#ifdef LPROCFS - rc = lprocfs_seq_create(obd->obd_proc_entry, "target_obd", - 0444, &lod_proc_target_fops, obd); - if (rc) { - CWARN("%s: Error adding the target_obd file %d\n", - obd->obd_name, rc); - GOTO(out_lproc, rc); - } - lod->lod_pool_proc_entry = lprocfs_register("pools", - obd->obd_proc_entry, - NULL, NULL); - if (IS_ERR(lod->lod_pool_proc_entry)) { - int ret = PTR_ERR(lod->lod_pool_proc_entry); - lod->lod_pool_proc_entry = NULL; - CWARN("%s: Failed to create pool proc file %d\n", - obd->obd_name, ret); - rc = lod_pools_fini(lod); - RETURN(ret); - } -#endif - RETURN(0); -out_lproc: - lprocfs_obd_cleanup(obd); - lod_ost_pool_free(&lod->lod_qos.lq_rr.lqr_pool); out_pool_info: lod_ost_pool_free(&lod->lod_pool_info); out_hash: @@ -987,10 +961,10 @@ int lod_pools_fini(struct lod_device *lod) if (lod->lod_osts_size > 0) { int idx; lod_getref(lod); - cfs_mutex_lock(&lod->lod_mutex); + mutex_lock(&lod->lod_mutex); cfs_foreach_bit(lod->lod_ost_bitmap, idx) __lod_del_device(lod, idx); - cfs_mutex_unlock(&lod->lod_mutex); + mutex_unlock(&lod->lod_mutex); lod_putref(lod); CFS_FREE_BITMAP(lod->lod_ost_bitmap); for (idx = 0; idx < OST_PTRS; idx++) { @@ -1003,15 +977,6 @@ 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); - - /* clear pools parent proc entry only after all pools are killed */ - if (lod->lod_pool_proc_entry) { - lprocfs_remove(&lod->lod_pool_proc_entry); - lod->lod_pool_proc_entry = NULL; - } - - lprocfs_obd_cleanup(obd); - OBD_FREE_PTR(lod->lod_qos.lq_statfs_data); RETURN(0); }