* GPL HEADER END
*/
/*
- * Copyright (c) 2012, 2014, Intel Corporation.
+ * Copyright (c) 2012, 2017, Intel Corporation.
* Use is subject to license terms.
*
* Author: Johann Lombardi <johann.lombardi@intel.com>
}
/* stop rebalance thread */
- qmt_stop_reba_thread(qmt);
+ if (!qmt->qmt_child->dd_rdonly)
+ qmt_stop_reba_thread(qmt);
/* disconnect from OSD */
if (qmt->qmt_child_exp != NULL) {
GOTO(out, rc);
/* set up and start rebalance thread */
- thread_set_flags(&qmt->qmt_reba_thread, SVC_STOPPED);
+ thread_set_flags(&qmt->qmt_reba_thread, SVC_STARTING);
init_waitqueue_head(&qmt->qmt_reba_thread.t_ctl_waitq);
INIT_LIST_HEAD(&qmt->qmt_reba_list);
spin_lock_init(&qmt->qmt_reba_lock);
type = class_search_type(LUSTRE_QMT_NAME);
LASSERT(type != NULL);
+ /* put reference taken by class_search_type */
+ kobject_put(&type->typ_kobj);
+
/* register proc directory associated with this qmt */
qmt->qmt_proc = lprocfs_register(qmt->qmt_svname, type->typ_procroot,
NULL, NULL);