Whamcloud - gitweb
LU-7349 lfsck: skip auto resume lfsck when mount
[fs/lustre-release.git] / lustre / mdt / mdt_handler.c
index a8b9c48..d462496 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2010, 2014, Intel Corporation.
+ * Copyright (c) 2010, 2015, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -86,15 +86,15 @@ mdl_mode_t mdt_mdl_lock_modes[] = {
         [LCK_GROUP]   = MDL_GROUP
 };
 
-ldlm_mode_t mdt_dlm_lock_modes[] = {
-        [MDL_MINMODE] = LCK_MINMODE,
-        [MDL_EX]      = LCK_EX,
-        [MDL_PW]      = LCK_PW,
-        [MDL_PR]      = LCK_PR,
-        [MDL_CW]      = LCK_CW,
-        [MDL_CR]      = LCK_CR,
-        [MDL_NL]      = LCK_NL,
-        [MDL_GROUP]   = LCK_GROUP
+enum ldlm_mode mdt_dlm_lock_modes[] = {
+       [MDL_MINMODE]   = LCK_MINMODE,
+       [MDL_EX]        = LCK_EX,
+       [MDL_PW]        = LCK_PW,
+       [MDL_PR]        = LCK_PR,
+       [MDL_CW]        = LCK_CW,
+       [MDL_CR]        = LCK_CR,
+       [MDL_NL]        = LCK_NL,
+       [MDL_GROUP]     = LCK_GROUP
 };
 
 static struct mdt_device *mdt_dev(struct lu_device *d);
@@ -161,15 +161,15 @@ void mdt_set_disposition(struct mdt_thread_info *info,
                rep->lock_policy_res1 |= op_flag;
 }
 
-void mdt_lock_reg_init(struct mdt_lock_handle *lh, ldlm_mode_t lm)
+void mdt_lock_reg_init(struct mdt_lock_handle *lh, enum ldlm_mode lm)
 {
-        lh->mlh_pdo_hash = 0;
-        lh->mlh_reg_mode = lm;
+       lh->mlh_pdo_hash = 0;
+       lh->mlh_reg_mode = lm;
        lh->mlh_rreg_mode = lm;
-        lh->mlh_type = MDT_REG_LOCK;
+       lh->mlh_type = MDT_REG_LOCK;
 }
 
-void mdt_lock_pdo_init(struct mdt_lock_handle *lh, ldlm_mode_t lock_mode,
+void mdt_lock_pdo_init(struct mdt_lock_handle *lh, enum ldlm_mode lock_mode,
                       const struct lu_name *lname)
 {
        lh->mlh_reg_mode = lock_mode;
@@ -897,10 +897,11 @@ static int mdt_getattr_internal(struct mdt_thread_info *info,
        }
 
        /* if file is released, check if a restore is running */
-       if ((ma->ma_valid & MA_HSM) && (ma->ma_hsm.mh_flags & HS_RELEASED) &&
-           mdt_hsm_restore_is_running(info, mdt_object_fid(o))) {
-               repbody->mbo_t_state = MS_RESTORE;
+       if (ma->ma_valid & MA_HSM) {
                repbody->mbo_valid |= OBD_MD_TSTATE;
+               if ((ma->ma_hsm.mh_flags & HS_RELEASED) &&
+                   mdt_hsm_restore_is_running(info, mdt_object_fid(o)))
+                       repbody->mbo_t_state = MS_RESTORE;
        }
 
        is_root = lu_fid_eq(mdt_object_fid(o), &info->mti_mdt->mdt_md_root_fid);
@@ -1435,6 +1436,13 @@ static int mdt_getattr_name_lock(struct mdt_thread_info *info,
                GOTO(out_parent, rc = PTR_ERR(child));
 
        OBD_FAIL_TIMEOUT(OBD_FAIL_MDS_RESEND, obd_timeout * 2);
+       if (!mdt_object_exists(child)) {
+               LU_OBJECT_DEBUG(D_INODE, info->mti_env,
+                               &child->mot_obj,
+                               "Object doesn't exist!\n");
+               GOTO(out_child, rc = -ENOENT);
+       }
+
        rc = mdt_check_resent_lock(info, child, lhc);
        if (rc < 0) {
                GOTO(out_child, rc);
@@ -1443,13 +1451,6 @@ static int mdt_getattr_name_lock(struct mdt_thread_info *info,
                mdt_lock_reg_init(lhc, LCK_PR);
                try_layout = false;
 
-               if (!mdt_object_exists(child)) {
-                       LU_OBJECT_DEBUG(D_INODE, info->mti_env,
-                                       &child->mot_obj,
-                                       "Object doesn't exist!\n");
-                       GOTO(out_child, rc = -ENOENT);
-               }
-
                if (!(child_bits & MDS_INODELOCK_UPDATE) &&
                      mdt_object_exists(child) && !mdt_object_remote(child)) {
                         struct md_attr *ma = &info->mti_attr;
@@ -1629,6 +1630,9 @@ static int mdt_set_info(struct tgt_session_info *tsi)
 
                rc = mdt_iocontrol(OBD_IOC_CHANGELOG_CLEAR, req->rq_export,
                                   vallen, val, NULL);
+       } else if (KEY_IS(KEY_EVICT_BY_NID)) {
+               if (vallen > 0)
+                       obd_export_evict_by_nid(req->rq_export->exp_obd, val);
        } else {
                RETURN(-EINVAL);
        }
@@ -2305,13 +2309,12 @@ int mdt_check_resent_lock(struct mdt_thread_info *info,
        return 1;
 }
 
-int mdt_remote_object_lock(struct mdt_thread_info *mti,
-                          struct mdt_object *o, const struct lu_fid *fid,
-                          struct lustre_handle *lh, ldlm_mode_t mode,
-                          __u64 ibits)
+int mdt_remote_object_lock(struct mdt_thread_info *mti, struct mdt_object *o,
+                          const struct lu_fid *fid, struct lustre_handle *lh,
+                          enum ldlm_mode mode, __u64 ibits, bool nonblock)
 {
        struct ldlm_enqueue_info *einfo = &mti->mti_einfo;
-       ldlm_policy_data_t *policy = &mti->mti_policy;
+       union ldlm_policy_data *policy = &mti->mti_policy;
        struct ldlm_res_id *res_id = &mti->mti_res_id;
        int rc = 0;
        ENTRY;
@@ -2327,6 +2330,8 @@ int mdt_remote_object_lock(struct mdt_thread_info *mti,
        einfo->ei_cb_cp = ldlm_completion_ast;
        einfo->ei_enq_slave = 0;
        einfo->ei_res_id = res_id;
+       if (nonblock)
+               einfo->ei_nonblock = 1;
 
        memset(policy, 0, sizeof(*policy));
        policy->l_inodebits.bits = ibits;
@@ -2341,12 +2346,12 @@ static int mdt_object_local_lock(struct mdt_thread_info *info,
                                 struct mdt_lock_handle *lh, __u64 ibits,
                                 bool nonblock)
 {
-        struct ldlm_namespace *ns = info->mti_mdt->mdt_namespace;
-        ldlm_policy_data_t *policy = &info->mti_policy;
-        struct ldlm_res_id *res_id = &info->mti_res_id;
+       struct ldlm_namespace *ns = info->mti_mdt->mdt_namespace;
+       union ldlm_policy_data *policy = &info->mti_policy;
+       struct ldlm_res_id *res_id = &info->mti_res_id;
        __u64 dlmflags;
-        int rc;
-        ENTRY;
+       int rc;
+       ENTRY;
 
         LASSERT(!lustre_handle_is_used(&lh->mlh_reg_lh));
         LASSERT(!lustre_handle_is_used(&lh->mlh_pdo_lh));
@@ -2432,6 +2437,7 @@ mdt_object_lock_internal(struct mdt_thread_info *info, struct mdt_object *o,
                         struct mdt_lock_handle *lh, __u64 ibits,
                         bool nonblock)
 {
+       struct mdt_lock_handle *local_lh = NULL;
        int rc;
        ENTRY;
 
@@ -2441,6 +2447,18 @@ mdt_object_lock_internal(struct mdt_thread_info *info, struct mdt_object *o,
        /* XXX do not support PERM/LAYOUT/XATTR lock for remote object yet */
        ibits &= ~(MDS_INODELOCK_PERM | MDS_INODELOCK_LAYOUT |
                   MDS_INODELOCK_XATTR);
+
+       /* Only enqueue LOOKUP lock for remote object */
+       if (ibits & MDS_INODELOCK_LOOKUP) {
+               rc = mdt_object_local_lock(info, o, lh,
+                                          MDS_INODELOCK_LOOKUP,
+                                          nonblock);
+               if (rc != ELDLM_OK)
+                       RETURN(rc);
+
+               local_lh = lh;
+       }
+
        if (ibits & MDS_INODELOCK_UPDATE) {
                /* Sigh, PDO needs to enqueue 2 locks right now, but
                 * enqueue RPC can only request 1 lock, to avoid extra
@@ -2458,18 +2476,12 @@ mdt_object_lock_internal(struct mdt_thread_info *info, struct mdt_object *o,
                rc = mdt_remote_object_lock(info, o, mdt_object_fid(o),
                                            &lh->mlh_rreg_lh,
                                            lh->mlh_rreg_mode,
-                                           MDS_INODELOCK_UPDATE);
-               if (rc != ELDLM_OK)
-                       RETURN(rc);
-       }
-
-       /* Only enqueue LOOKUP lock for remote object */
-       if (ibits & MDS_INODELOCK_LOOKUP) {
-               rc = mdt_object_local_lock(info, o, lh,
-                                          MDS_INODELOCK_LOOKUP,
-                                          nonblock);
-               if (rc != ELDLM_OK)
+                                           MDS_INODELOCK_UPDATE, nonblock);
+               if (rc != ELDLM_OK) {
+                       if (local_lh != NULL)
+                               mdt_object_unlock(info, o, local_lh, rc);
                        RETURN(rc);
+               }
        }
 
        RETURN(0);
@@ -2507,24 +2519,23 @@ int mdt_object_lock_try(struct mdt_thread_info *info, struct mdt_object *o,
  * \param mode lock mode
  * \param decref force immediate lock releasing
  */
-static
-void mdt_save_lock(struct mdt_thread_info *info, struct lustre_handle *h,
-                   ldlm_mode_t mode, int decref)
+static void mdt_save_lock(struct mdt_thread_info *info, struct lustre_handle *h,
+                         enum ldlm_mode mode, int decref)
 {
-        ENTRY;
+       ENTRY;
 
-        if (lustre_handle_is_used(h)) {
-                if (decref || !info->mti_has_trans ||
-                    !(mode & (LCK_PW | LCK_EX))){
-                        mdt_fid_unlock(h, mode);
-                } else {
-                        struct mdt_device *mdt = info->mti_mdt;
-                        struct ldlm_lock *lock = ldlm_handle2lock(h);
-                        struct ptlrpc_request *req = mdt_info_req(info);
-                        int no_ack = 0;
+       if (lustre_handle_is_used(h)) {
+               if (decref || !info->mti_has_trans ||
+                   !(mode & (LCK_PW | LCK_EX))) {
+                       mdt_fid_unlock(h, mode);
+               } else {
+                       struct mdt_device *mdt = info->mti_mdt;
+                       struct ldlm_lock *lock = ldlm_handle2lock(h);
+                       struct ptlrpc_request *req = mdt_info_req(info);
+                       int no_ack = 0;
 
-                        LASSERTF(lock != NULL, "no lock for cookie "LPX64"\n",
-                                 h->cookie);
+                       LASSERTF(lock != NULL, "no lock for cookie "LPX64"\n",
+                                h->cookie);
                        /* there is no request if mdt_object_unlock() is called
                         * from mdt_export_cleanup()->mdt_add_dirty_flag() */
                        if (likely(req != NULL)) {
@@ -2740,6 +2751,7 @@ void mdt_thread_info_init(struct ptlrpc_request *req,
         info->mti_spec.no_create = 0;
        info->mti_spec.sp_rm_entry = 0;
        info->mti_spec.sp_permitted = 0;
+       info->mti_spec.sp_migrate_close = 0;
 
        info->mti_spec.u.sp_ea.eadata = NULL;
        info->mti_spec.u.sp_ea.eadatalen = 0;
@@ -3287,54 +3299,55 @@ static int mdt_intent_reint(enum mdt_it_code opcode,
        RETURN(ELDLM_LOCK_ABORTED);
 }
 
-static int mdt_intent_code(long itcode)
+static int mdt_intent_code(enum ldlm_intent_flags itcode)
 {
-        int rc;
+       int rc;
 
-        switch(itcode) {
-        case IT_OPEN:
-                rc = MDT_IT_OPEN;
-                break;
-        case IT_OPEN|IT_CREAT:
-                rc = MDT_IT_OCREAT;
-                break;
-        case IT_CREAT:
-                rc = MDT_IT_CREATE;
-                break;
-        case IT_READDIR:
-                rc = MDT_IT_READDIR;
-                break;
-        case IT_GETATTR:
-                rc = MDT_IT_GETATTR;
-                break;
-        case IT_LOOKUP:
-                rc = MDT_IT_LOOKUP;
-                break;
-        case IT_UNLINK:
-                rc = MDT_IT_UNLINK;
-                break;
-        case IT_TRUNC:
-                rc = MDT_IT_TRUNC;
-                break;
-        case IT_GETXATTR:
-                rc = MDT_IT_GETXATTR;
-                break;
-        case IT_LAYOUT:
-                rc = MDT_IT_LAYOUT;
-                break;
+       switch (itcode) {
+       case IT_OPEN:
+               rc = MDT_IT_OPEN;
+               break;
+       case IT_OPEN|IT_CREAT:
+               rc = MDT_IT_OCREAT;
+               break;
+       case IT_CREAT:
+               rc = MDT_IT_CREATE;
+               break;
+       case IT_READDIR:
+               rc = MDT_IT_READDIR;
+               break;
+       case IT_GETATTR:
+               rc = MDT_IT_GETATTR;
+               break;
+       case IT_LOOKUP:
+               rc = MDT_IT_LOOKUP;
+               break;
+       case IT_UNLINK:
+               rc = MDT_IT_UNLINK;
+               break;
+       case IT_TRUNC:
+               rc = MDT_IT_TRUNC;
+               break;
+       case IT_GETXATTR:
+               rc = MDT_IT_GETXATTR;
+               break;
+       case IT_LAYOUT:
+               rc = MDT_IT_LAYOUT;
+               break;
        case IT_QUOTA_DQACQ:
        case IT_QUOTA_CONN:
                rc = MDT_IT_QUOTA;
                break;
-        default:
-                CERROR("Unknown intent opcode: %ld\n", itcode);
-                rc = -EINVAL;
-                break;
-        }
-        return rc;
+       default:
+               CERROR("Unknown intent opcode: 0x%08x\n", itcode);
+               rc = -EINVAL;
+               break;
+       }
+       return rc;
 }
 
-static int mdt_intent_opc(long itopc, struct mdt_thread_info *info,
+static int mdt_intent_opc(enum ldlm_intent_flags itopc,
+                         struct mdt_thread_info *info,
                          struct ldlm_lock **lockp, __u64 flags)
 {
        struct req_capsule      *pill = info->mti_pill;
@@ -3377,6 +3390,8 @@ static int mdt_intent_opc(long itopc, struct mdt_thread_info *info,
        if (flv->it_act != NULL) {
                struct ldlm_reply *rep;
 
+               OBD_FAIL_TIMEOUT(OBD_FAIL_MDS_INTENT_DELAY, 10);
+
                /* execute policy */
                rc = flv->it_act(opc, info, lockp, flags);
 
@@ -3393,8 +3408,8 @@ static int mdt_intent_opc(long itopc, struct mdt_thread_info *info,
 }
 
 static int mdt_intent_policy(struct ldlm_namespace *ns,
-                             struct ldlm_lock **lockp, void *req_cookie,
-                            ldlm_mode_t mode, __u64 flags, void *data)
+                            struct ldlm_lock **lockp, void *req_cookie,
+                            enum ldlm_mode mode, __u64 flags, void *data)
 {
        struct tgt_session_info *tsi;
        struct mdt_thread_info  *info;
@@ -3879,7 +3894,7 @@ static int mdt_stack_init(const struct lu_env *env, struct mdt_device *mdt,
 
        lcfg = lustre_cfg_new(LCFG_ATTACH, bufs);
        if (lcfg == NULL)
-               GOTO(free_bufs, rc = -ENOMEM);
+               GOTO(put_profile, rc = -ENOMEM);
 
        rc = class_attach(lcfg);
        if (rc)
@@ -3939,6 +3954,8 @@ class_detach:
                class_detach(obd, lcfg);
 lcfg_cleanup:
        lustre_cfg_free(lcfg);
+put_profile:
+       class_put_profile(lprof);
 free_bufs:
        OBD_FREE_PTR(bufs);
 cleanup_mem:
@@ -4009,7 +4026,7 @@ static int mdt_quota_init(const struct lu_env *env, struct mdt_device *mdt,
 
        lcfg = lustre_cfg_new(LCFG_ATTACH, bufs);
        if (lcfg == NULL)
-               GOTO(cleanup_mem, rc = -ENOMEM);
+               GOTO(put_profile, rc = -ENOMEM);
 
        rc = class_attach(lcfg);
        if (rc)
@@ -4071,6 +4088,8 @@ class_detach:
                class_detach(obd, lcfg);
 lcfg_cleanup:
        lustre_cfg_free(lcfg);
+put_profile:
+       class_put_profile(lprof);
 cleanup_mem:
        if (bufs)
                OBD_FREE_PTR(bufs);
@@ -4232,9 +4251,9 @@ static void mdt_fini(const struct lu_env *env, struct mdt_device *m)
        stop.ls_flags = 0;
        next->md_ops->mdo_iocontrol(env, next, OBD_IOC_STOP_LFSCK, 0, &stop);
 
+       mdt_stack_pre_fini(env, m, md2lu_dev(m->mdt_child));
        target_recovery_fini(obd);
        ping_evictor_stop();
-       mdt_stack_pre_fini(env, m, md2lu_dev(m->mdt_child));
 
        if (m->mdt_opts.mo_coordinator)
                mdt_hsm_cdt_stop(m);
@@ -4243,6 +4262,11 @@ static void mdt_fini(const struct lu_env *env, struct mdt_device *m)
 
        mdt_llog_ctxt_unclone(env, m, LLOG_AGENT_ORIG_CTXT);
         mdt_llog_ctxt_unclone(env, m, LLOG_CHANGELOG_ORIG_CTXT);
+
+       if (m->mdt_namespace != NULL)
+               ldlm_namespace_free_prior(m->mdt_namespace, NULL,
+                                         d->ld_obd->obd_force);
+
         obd_exports_barrier(obd);
         obd_zombie_barrier();
 
@@ -4253,11 +4277,10 @@ static void mdt_fini(const struct lu_env *env, struct mdt_device *m)
         upcall_cache_cleanup(m->mdt_identity_cache);
         m->mdt_identity_cache = NULL;
 
-        if (m->mdt_namespace != NULL) {
-                ldlm_namespace_free(m->mdt_namespace, NULL,
-                                    d->ld_obd->obd_force);
-                d->ld_obd->obd_namespace = m->mdt_namespace = NULL;
-        }
+       if (m->mdt_namespace != NULL) {
+               ldlm_namespace_free_post(m->mdt_namespace);
+               d->ld_obd->obd_namespace = m->mdt_namespace = NULL;
+       }
 
        mdt_quota_fini(env, m);
 
@@ -4318,7 +4341,7 @@ static int mdt_init0(const struct lu_env *env, struct mdt_device *m,
         LASSERT(obd != NULL);
 
         m->mdt_max_mdsize = MAX_MD_SIZE; /* 4 stripes */
-
+       m->mdt_opts.mo_evict_tgt_nids = 1;
         m->mdt_opts.mo_cos = MDT_COS_DEFAULT;
 
        /* default is coordinator off, it is started through conf_param
@@ -4335,6 +4358,9 @@ static int mdt_init0(const struct lu_env *env, struct mdt_device *m,
                 LASSERT(num);
                 node_id = simple_strtol(num, NULL, 10);
                obd->u.obt.obt_magic = OBT_MAGIC;
+               if (lsi->lsi_lmd != NULL &&
+                   lsi->lsi_lmd->lmd_flags & LMD_FLG_SKIP_LFSCK)
+                       m->mdt_skip_lfsck = 1;
        }
 
        m->mdt_squash.rsi_uid = 0;
@@ -4983,12 +5009,12 @@ static int mdt_obd_disconnect(struct obd_export *exp)
         LASSERT(exp);
         class_export_get(exp);
 
-       nodemap_del_member(exp);
        rc = server_disconnect_export(exp);
        if (rc != 0)
                CDEBUG(D_IOCTL, "server disconnect error: rc = %d\n", rc);
 
        rc = mdt_export_cleanup(exp);
+       nodemap_del_member(exp);
        class_export_put(exp);
        RETURN(rc);
 }
@@ -5036,6 +5062,10 @@ static int mdt_obd_connect(const struct lu_env *env,
        lexp = class_conn2export(&conn);
        LASSERT(lexp != NULL);
 
+       rc = nodemap_add_member(*client_nid, lexp);
+       if (rc != 0 && rc != -EEXIST)
+               GOTO(out, rc);
+
        rc = mdt_connect_internal(lexp, mdt, data);
        if (rc == 0) {
                struct lsd_client_data *lcd = lexp->exp_target_data.ted_lcd;
@@ -5043,17 +5073,13 @@ static int mdt_obd_connect(const struct lu_env *env,
                LASSERT(lcd);
                memcpy(lcd->lcd_uuid, cluuid, sizeof lcd->lcd_uuid);
                rc = tgt_client_new(env, lexp);
-               if (rc == 0) {
-                       rc = nodemap_add_member(*client_nid, lexp);
-                       if (rc != 0 && rc != -EEXIST)
-                               goto out;
-
+               if (rc == 0)
                        mdt_export_stats_init(obd, lexp, localdata);
-               }
        }
 out:
        if (rc != 0) {
                class_disconnect(lexp);
+               nodemap_del_member(lexp);
                *exp = NULL;
        } else {
                *exp = lexp;
@@ -5075,12 +5101,15 @@ static int mdt_obd_reconnect(const struct lu_env *env,
        if (exp == NULL || obd == NULL || cluuid == NULL)
                RETURN(-EINVAL);
 
+       rc = nodemap_add_member(*client_nid, exp);
+       if (rc != 0 && rc != -EEXIST)
+               RETURN(rc);
+
        rc = mdt_connect_internal(exp, mdt_dev(obd->obd_lu_dev), data);
-       if (rc == 0) {
-               rc = nodemap_add_member(*client_nid, exp);
-               if (rc == 0 || rc == -EEXIST)
-                       mdt_export_stats_init(obd, exp, localdata);
-       }
+       if (rc == 0)
+               mdt_export_stats_init(obd, exp, localdata);
+       else
+               nodemap_del_member(exp);
 
        RETURN(rc);
 }
@@ -5650,18 +5679,21 @@ static int mdt_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
 static int mdt_postrecov(const struct lu_env *env, struct mdt_device *mdt)
 {
        struct lu_device *ld = md2lu_dev(mdt->mdt_child);
-       struct lfsck_start_param lsp;
        int rc;
        ENTRY;
 
-       lsp.lsp_start = NULL;
-       lsp.lsp_index_valid = 0;
-       rc = mdt->mdt_child->md_ops->mdo_iocontrol(env, mdt->mdt_child,
-                                                  OBD_IOC_START_LFSCK,
-                                                  0, &lsp);
-       if (rc != 0 && rc != -EALREADY)
-               CWARN("%s: auto trigger paused LFSCK failed: rc = %d\n",
-                     mdt_obd_name(mdt), rc);
+       if (!mdt->mdt_skip_lfsck) {
+               struct lfsck_start_param lsp;
+
+               lsp.lsp_start = NULL;
+               lsp.lsp_index_valid = 0;
+               rc = mdt->mdt_child->md_ops->mdo_iocontrol(env, mdt->mdt_child,
+                                                          OBD_IOC_START_LFSCK,
+                                                          0, &lsp);
+               if (rc != 0 && rc != -EALREADY)
+                       CWARN("%s: auto trigger paused LFSCK failed: rc = %d\n",
+                             mdt_obd_name(mdt), rc);
+       }
 
        rc = ld->ld_ops->ldo_recovery_complete(env, ld);
        RETURN(rc);
@@ -5815,7 +5847,7 @@ static struct lu_device_type mdt_device_type = {
         .ldt_ctx_tags = LCT_MD_THREAD
 };
 
-static int __init mdt_mod_init(void)
+static int __init mdt_init(void)
 {
        int rc;
 
@@ -5844,17 +5876,17 @@ mds_fini:
        return rc;
 }
 
-static void __exit mdt_mod_exit(void)
+static void __exit mdt_exit(void)
 {
        class_unregister_type(LUSTRE_MDT_NAME);
        mds_mod_exit();
        lu_kmem_fini(mdt_caches);
 }
 
-MODULE_AUTHOR("Sun Microsystems, Inc. <http://www.lustre.org/>");
+MODULE_AUTHOR("OpenSFS, Inc. <http://www.lustre.org/>");
 MODULE_DESCRIPTION("Lustre Metadata Target ("LUSTRE_MDT_NAME")");
 MODULE_VERSION(LUSTRE_VERSION_STRING);
 MODULE_LICENSE("GPL");
 
-module_init(mdt_mod_init);
-module_exit(mdt_mod_exit);
+module_init(mdt_init);
+module_exit(mdt_exit);