Whamcloud - gitweb
LU-3829 ldlm: MDT mount fails on MDS w/o MGS on it
[fs/lustre-release.git] / lustre / obdclass / obd_mount_server.c
index 9b8b144..c3352d7 100644 (file)
@@ -567,7 +567,6 @@ out:
  **/
 static int lustre_lwp_setup(struct lustre_cfg *lcfg, struct lustre_sb_info *lsi)
 {
-       struct obd_connect_data *data = NULL;
        struct obd_device       *obd;
        char                    *lwpname = NULL;
        char                    *lwpuuid = NULL;
@@ -612,8 +611,6 @@ static int lustre_lwp_setup(struct lustre_cfg *lcfg, struct lustre_sb_info *lsi)
        if (rc != 0)
                CERROR("%s: connect failed: rc = %d\n", lwpname, rc);
 out:
-       if (data != NULL)
-               OBD_FREE_PTR(data);
        if (lwpname != NULL)
                OBD_FREE(lwpname, MTI_NAME_MAXLEN);
        if (lwpuuid != NULL)
@@ -985,13 +982,9 @@ static int server_stop_servers(int lsiflags)
        }
 
        if (obd != NULL && (type == NULL || type->typ_refcnt == 0)) {
-               int err;
-
                obd->obd_force = 1;
                /* obd_fail doesn't mean much on a server obd */
-               err = class_manual_cleanup(obd);
-               if (rc != 0)
-                       rc = err;
+               rc = class_manual_cleanup(obd);
        }
 
        mutex_unlock(&server_start_lock);
@@ -1663,14 +1656,18 @@ static int osd_start(struct lustre_sb_info *lsi, unsigned long mflags)
                obd->obd_force = 1;
                class_manual_cleanup(obd);
                lsi->lsi_dt_dev = NULL;
+               RETURN(rc);
        }
 
-       /* XXX: to keep support old components relying on lsi_srv_mnt
-        *      we get this info from OSD just started */
        LASSERT(obd->obd_lu_dev);
+       lu_device_get(obd->obd_lu_dev);
        lsi->lsi_dt_dev = lu2dt_dev(obd->obd_lu_dev);
        LASSERT(lsi->lsi_dt_dev);
 
+       /* set disk context for llog usage */
+       OBD_SET_CTXT_MAGIC(&obd->obd_lvfs_ctxt);
+       obd->obd_lvfs_ctxt.dt = lsi->lsi_dt_dev;
+
        dt_conf_get(NULL, lsi->lsi_dt_dev, &p);
 
        lsi->lsi_srv_mnt = p.ddp_mnt;