Whamcloud - gitweb
LU-8900 snapshot: simulate readonly device
[fs/lustre-release.git] / lustre / quota / qsd_lib.c
index a6b8b9c..6a60263 100644 (file)
@@ -508,9 +508,11 @@ void qsd_fini(const struct lu_env *env, struct qsd_instance *qsd)
        for (qtype = USRQUOTA; qtype < LL_MAXQUOTAS; qtype++)
                qsd_qtype_fini(env, qsd, qtype);
 
-       /* deregister connection to the quota master */
-       qsd->qsd_exp_valid = false;
-       lustre_deregister_lwp_item(&qsd->qsd_exp);
+       if (qsd->qsd_exp) {
+               /* deregister connection to the quota master */
+               qsd->qsd_exp_valid = false;
+               lustre_deregister_lwp_item(&qsd->qsd_exp);
+       }
 
        /* release per-filesystem information */
        if (qsd->qsd_fsinfo != NULL) {
@@ -703,6 +705,9 @@ int qsd_prepare(const struct lu_env *env, struct qsd_instance *qsd)
        qsd->qsd_prepared = true;
        write_unlock(&qsd->qsd_lock);
 
+       if (qsd->qsd_dev->dd_rdonly)
+               RETURN(0);
+
        /* start reintegration thread for each type, if required */
        for (qtype = USRQUOTA; qtype < LL_MAXQUOTAS; qtype++) {
                struct qsd_qtype_info   *qqi = qsd->qsd_type_array[qtype];