Whamcloud - gitweb
the missing part of last capa fix.
[fs/lustre-release.git] / lustre / osc / osc_create.c
index 3a25414..c8af289 100644 (file)
@@ -82,6 +82,12 @@ int osc_create(struct obd_export *exp, struct obdo *oa,
         LASSERT(oa->o_valid & OBD_MD_FLGROUP);
         LASSERT(acl == NULL && acl_size == 0);
 
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+        if (current->journal_info != NULL)
+                CWARN("calling osc_create() with an "
+                      "open transaction isn't a good idea\n");
+#endif
+
         if (oa->o_gr == FILTER_GROUP_LLOG || oa->o_gr == FILTER_GROUP_ECHO)
                 RETURN(osc_real_create(exp, oa, ea, oti));
 
@@ -120,6 +126,7 @@ int osc_create(struct obd_export *exp, struct obdo *oa,
                         oscc->oscc_flags &= ~OSCC_FLAG_RECOVERING;
                         CDEBUG(D_HA, "%s: oscc recovery finished: %d\n",
                                oscc->oscc_obd->obd_name, rc);
+                        wake_up(&oscc->oscc_waitq);
                 } else {
                         CDEBUG(D_ERROR, "%s: oscc recovery failed: %d\n",
                                oscc->oscc_obd->obd_name, rc);
@@ -142,8 +149,9 @@ int osc_create(struct obd_export *exp, struct obdo *oa,
                                           !oscc_recovering(oscc), &lwi);
                         LASSERT(rc == 0 || rc == -ETIMEDOUT);
                         if (rc == -ETIMEDOUT) {
-                                CDEBUG(D_HA,"%p: timeout waiting on recovery\n",
+                                CDEBUG(D_ERROR,"%p: timeout waiting on recovery\n",
                                        oscc);
+                                portals_debug_dumplog();
                                 RETURN(rc);
                         }
                         CDEBUG(D_HA, "%p: oscc recovery over, waking up\n",