Whamcloud - gitweb
LU-2075 fld: use predefined FIDs
authorAlex Zhuravlev <alexey.zhuravlev@intel.com>
Tue, 2 Oct 2012 19:52:42 +0000 (23:52 +0400)
committerOleg Drokin <green@whamcloud.com>
Wed, 3 Oct 2012 05:45:43 +0000 (01:45 -0400)
and let OSD do mapping to the names internally.

Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Change-Id: Ibfaf9ae210d91dd32c3bb0a21c1078042596197a
Reviewed-on: http://review.whamcloud.com/4158
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: wangdi <di.wang@whamcloud.com>
Reviewed-by: Mike Pershin <tappro@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/fid/fid_handler.c
lustre/fid/fid_store.c
lustre/fld/fld_handler.c
lustre/fld/fld_index.c
lustre/osd-ldiskfs/osd_compat.c
lustre/osd-zfs/osd_oi.c

index 809e0f5..df3a999 100644 (file)
@@ -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;
                         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) {
 
                 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;
 
 
 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,
 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);
 
         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;
         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)
 {
 
 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);
         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);
index 648fe86..651d23e 100644 (file)
@@ -275,15 +275,27 @@ int seq_store_init(struct lu_server_seq *seq,
                    struct dt_device *dt)
 {
         struct dt_object *dt_obj;
                    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;
 
         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;
         if (!IS_ERR(dt_obj)) {
                 seq->lss_obj = dt_obj;
                 rc = 0;
index 1d28b21..4b1c2e2 100644 (file)
@@ -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;
 
 
 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,
 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);
 
         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;
         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)
 {
 
 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);
         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);
index e4c4169..2a8d314 100644 (file)
@@ -332,10 +332,20 @@ int fld_index_init(struct lu_server_fld *fld,
 {
         struct dt_object *dt_obj;
         struct lu_fid fid;
 {
         struct dt_object *dt_obj;
         struct lu_fid fid;
+       struct lu_attr attr;
+       struct dt_object_format dof;
         int rc;
         ENTRY;
 
         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,
         if (!IS_ERR(dt_obj)) {
                 fld->lsf_obj = dt_obj;
                 rc = dt_obj->do_ops->do_index_try(env, dt_obj,
index 0c51b6f..a0ff99e 100644 (file)
@@ -483,9 +483,9 @@ struct named_oid {
 };
 
 static const struct named_oid oids[] = {
 };
 
 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 },
        { MDD_ROOT_INDEX_OID,   "" /* "ROOT" */ },
        { MDD_ORPHAN_OID,       "" /* "PENDING" */ },
        { MDD_LOV_OBJ_OID,      LOV_OBJID },
index 0df1568..4321a9d 100644 (file)
@@ -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*/ },
        { 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*/ },
        { 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 },
        { MDD_LOV_OBJ_OID,              LOV_OBJID },
        { MDT_LAST_RECV_OID,            LAST_RCVD },
        { OFD_HEALTH_CHECK_OID,         HEALTH_CHECK },