From 155e4b6cf45cc0ab21f72d94e5cccbd7a0939c58 Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Tue, 2 Oct 2012 23:52:42 +0400 Subject: [PATCH] LU-2075 fld: use predefined FIDs and let OSD do mapping to the names internally. Signed-off-by: Alex Zhuravlev Change-Id: Ibfaf9ae210d91dd32c3bb0a21c1078042596197a Reviewed-on: http://review.whamcloud.com/4158 Tested-by: Hudson Tested-by: Maloo Reviewed-by: wangdi Reviewed-by: Mike Pershin Reviewed-by: Oleg Drokin --- lustre/fid/fid_handler.c | 24 +++--------------------- lustre/fid/fid_store.c | 20 ++++++++++++++++---- lustre/fld/fld_handler.c | 10 ---------- lustre/fld/fld_index.c | 12 +++++++++++- lustre/osd-ldiskfs/osd_compat.c | 6 +++--- lustre/osd-zfs/osd_oi.c | 6 +++--- 6 files changed, 36 insertions(+), 42 deletions(-) diff --git a/lustre/fid/fid_handler.c b/lustre/fid/fid_handler.c index 809e0f5..df3a999 100644 --- a/lustre/fid/fid_handler.c +++ b/lustre/fid/fid_handler.c @@ -509,9 +509,9 @@ int seq_server_init(struct lu_server_seq *seq, LUSTRE_SEQ_SPACE_RANGE; seq->lss_space.lsr_index = ms->ms_node_id; - CDEBUG(D_INFO, "%s: No data found " - "on store. Initialize space\n", - seq->lss_name); + LCONSOLE_INFO("%s: No data found " + "on store. Initialize space\n", + seq->lss_name); rc = seq_store_update(env, seq, NULL, 0); if (rc) { @@ -557,18 +557,6 @@ EXPORT_SYMBOL(seq_server_fini); cfs_proc_dir_entry_t *seq_type_proc_dir = NULL; -static struct lu_local_obj_desc llod_seq_srv = { - .llod_name = LUSTRE_SEQ_SRV_NAME, - .llod_oid = FID_SEQ_SRV_OID, - .llod_is_index = 0, -}; - -static struct lu_local_obj_desc llod_seq_ctl = { - .llod_name = LUSTRE_SEQ_CTL_NAME, - .llod_oid = FID_SEQ_CTL_OID, - .llod_is_index = 0, -}; - static int __init fid_mod_init(void) { seq_type_proc_dir = lprocfs_register(LUSTRE_SEQ_NAME, @@ -577,9 +565,6 @@ static int __init fid_mod_init(void) if (IS_ERR(seq_type_proc_dir)) return PTR_ERR(seq_type_proc_dir); - llo_local_obj_register(&llod_seq_srv); - llo_local_obj_register(&llod_seq_ctl); - LU_CONTEXT_KEY_INIT(&seq_thread_key); lu_context_key_register(&seq_thread_key); return 0; @@ -587,9 +572,6 @@ static int __init fid_mod_init(void) static void __exit fid_mod_exit(void) { - llo_local_obj_unregister(&llod_seq_srv); - llo_local_obj_unregister(&llod_seq_ctl); - lu_context_key_degister(&seq_thread_key); if (seq_type_proc_dir != NULL && !IS_ERR(seq_type_proc_dir)) { lprocfs_remove(&seq_type_proc_dir); diff --git a/lustre/fid/fid_store.c b/lustre/fid/fid_store.c index 648fe86..651d23e 100644 --- a/lustre/fid/fid_store.c +++ b/lustre/fid/fid_store.c @@ -275,15 +275,27 @@ int seq_store_init(struct lu_server_seq *seq, struct dt_device *dt) { struct dt_object *dt_obj; - struct lu_fid fid; + struct lu_fid fid; + struct lu_attr attr; + struct dt_object_format dof; const char *name; int rc; ENTRY; - name = seq->lss_type == LUSTRE_SEQ_SERVER ? - LUSTRE_SEQ_SRV_NAME : LUSTRE_SEQ_CTL_NAME; + name = seq->lss_type == LUSTRE_SEQ_SERVER ? + LUSTRE_SEQ_SRV_NAME : LUSTRE_SEQ_CTL_NAME; - dt_obj = dt_store_open(env, dt, "", name, &fid); + if (seq->lss_type == LUSTRE_SEQ_SERVER) + lu_local_obj_fid(&fid, FID_SEQ_SRV_OID); + else + lu_local_obj_fid(&fid, FID_SEQ_CTL_OID); + + memset(&attr, 0, sizeof(attr)); + attr.la_valid = LA_MODE; + attr.la_mode = S_IFREG | 0666; + dof.dof_type = DFT_REGULAR; + + dt_obj = dt_find_or_create(env, dt, &fid, &dof, &attr); if (!IS_ERR(dt_obj)) { seq->lss_obj = dt_obj; rc = 0; diff --git a/lustre/fld/fld_handler.c b/lustre/fld/fld_handler.c index 1d28b218..4b1c2e2 100644 --- a/lustre/fld/fld_handler.c +++ b/lustre/fld/fld_handler.c @@ -76,13 +76,6 @@ LU_CONTEXT_KEY_DEFINE(fld, LCT_MD_THREAD|LCT_DT_THREAD); cfs_proc_dir_entry_t *fld_type_proc_dir = NULL; -static struct lu_local_obj_desc llod_fld_index = { - .llod_name = fld_index_name, - .llod_oid = FLD_INDEX_OID, - .llod_is_index = 1, - .llod_feat = &fld_index_features, -}; - static int __init fld_mod_init(void) { fld_type_proc_dir = lprocfs_register(LUSTRE_FLD_NAME, @@ -91,8 +84,6 @@ static int __init fld_mod_init(void) if (IS_ERR(fld_type_proc_dir)) return PTR_ERR(fld_type_proc_dir); - llo_local_obj_register(&llod_fld_index); - LU_CONTEXT_KEY_INIT(&fld_thread_key); lu_context_key_register(&fld_thread_key); return 0; @@ -100,7 +91,6 @@ static int __init fld_mod_init(void) static void __exit fld_mod_exit(void) { - llo_local_obj_unregister(&llod_fld_index); lu_context_key_degister(&fld_thread_key); if (fld_type_proc_dir != NULL && !IS_ERR(fld_type_proc_dir)) { lprocfs_remove(&fld_type_proc_dir); diff --git a/lustre/fld/fld_index.c b/lustre/fld/fld_index.c index e4c4169..2a8d314 100644 --- a/lustre/fld/fld_index.c +++ b/lustre/fld/fld_index.c @@ -332,10 +332,20 @@ int fld_index_init(struct lu_server_fld *fld, { struct dt_object *dt_obj; struct lu_fid fid; + struct lu_attr attr; + struct dt_object_format dof; int rc; ENTRY; - dt_obj = dt_store_open(env, dt, "", fld_index_name, &fid); + lu_local_obj_fid(&fid, FLD_INDEX_OID); + + memset(&attr, 0, sizeof(attr)); + attr.la_valid = LA_MODE; + attr.la_mode = S_IFREG | 0666; + dof.dof_type = DFT_INDEX; + dof.u.dof_idx.di_feat = &fld_index_features; + + dt_obj = dt_find_or_create(env, dt, &fid, &dof, &attr); if (!IS_ERR(dt_obj)) { fld->lsf_obj = dt_obj; rc = dt_obj->do_ops->do_index_try(env, dt_obj, diff --git a/lustre/osd-ldiskfs/osd_compat.c b/lustre/osd-ldiskfs/osd_compat.c index 0c51b6f..a0ff99e 100644 --- a/lustre/osd-ldiskfs/osd_compat.c +++ b/lustre/osd-ldiskfs/osd_compat.c @@ -483,9 +483,9 @@ struct named_oid { }; static const struct named_oid oids[] = { - { FLD_INDEX_OID, "" /* "fld" */ }, - { FID_SEQ_CTL_OID, "" /* "seq_ctl" */ }, - { FID_SEQ_SRV_OID, "" /* "seq_srv" */ }, + { FLD_INDEX_OID, "fld" }, + { FID_SEQ_CTL_OID, "seq_ctl" }, + { FID_SEQ_SRV_OID, "seq_srv" }, { MDD_ROOT_INDEX_OID, "" /* "ROOT" */ }, { MDD_ORPHAN_OID, "" /* "PENDING" */ }, { MDD_LOV_OBJ_OID, LOV_OBJID }, diff --git a/lustre/osd-zfs/osd_oi.c b/lustre/osd-zfs/osd_oi.c index 0df1568..4321a9d 100644 --- a/lustre/osd-zfs/osd_oi.c +++ b/lustre/osd-zfs/osd_oi.c @@ -93,10 +93,10 @@ static const struct named_oid oids[] = { { OFD_LAST_GROUP_OID, "LAST_GROUP" }, { LLOG_CATALOGS_OID, "CATALOGS" }, { MGS_CONFIGS_OID, NULL /*MOUNT_CONFIGS_DIR*/ }, - { FID_SEQ_SRV_OID, NULL /* "seq_srv" */}, - { FID_SEQ_CTL_OID, NULL /*"seq_ctl"*/ }, + { FID_SEQ_SRV_OID, "seq_srv" }, + { FID_SEQ_CTL_OID, "seq_ctl" }, { MDD_CAPA_KEYS_OID, NULL /*CAPA_KEYS*/ }, - { FLD_INDEX_OID, NULL /* "fld" */ }, + { FLD_INDEX_OID, "fld" }, { MDD_LOV_OBJ_OID, LOV_OBJID }, { MDT_LAST_RECV_OID, LAST_RCVD }, { OFD_HEALTH_CHECK_OID, HEALTH_CHECK }, -- 1.8.3.1