Whamcloud - gitweb
Branch b_release_1_8_1
authorjohann <johann>
Tue, 6 Oct 2009 08:49:19 +0000 (08:49 +0000)
committerjohann <johann>
Tue, 6 Oct 2009 08:49:19 +0000 (08:49 +0000)
b=18630
i=johann

don't LBUG on release quota error. Just a workaround until the problem is understood.

lustre/ChangeLog
lustre/quota/quota_context.c

index df32152..3dfc7a1 100644 (file)
@@ -141,6 +141,11 @@ Description: group quota "too many blocks" OSS crashes
 Details    : we should keep the same uid/gid for lquota_chkquota() and
             lquota_pending_commit()
 
+Severity   : normal
+Bugzilla   : 18630
+Description: LustreError: 9153:0:(quota_context.c:622:dqacq_completion()) LBUG
+Details    : don't LBUG on release quota error. Just a workaround until the
+            problem is understood.
 
 -------------------------------------------------------------------------------
 
index 423629b..3f19a9e 100644 (file)
@@ -650,15 +650,18 @@ dqacq_completion(struct obd_device *obd, struct lustre_quota_ctxt *qctxt,
                         INC_QLIMIT(*hardlimit, count);
                         break;
                 case QUOTA_DQREL:
-                        LASSERTF(count < *hardlimit,
-                                 "id(%u) flag(%u) type(%c) isblk(%c) "
-                                 "count("LPU64") qd_qunit("LPU64") "
-                                 "hardlimit("LPU64").\n",
-                                 qdata->qd_id, qdata->qd_flags,
-                                 QDATA_IS_GRP(qdata) ? 'g' : 'u',
-                                 QDATA_IS_BLK(qdata) ? 'b': 'i',
-                                 qdata->qd_count, qdata->qd_qunit, *hardlimit);
-                        *hardlimit -= count;
+                        if (count >= *hardlimit)
+                                CERROR("release quota error: id(%u) flag(%u) "
+                                       "type(%c) isblk(%c) count("LPU64") "
+                                       "qd_qunit("LPU64") hardlimit("LPU64") "
+                                       "qdata(%p)\n",
+                                       qdata->qd_id, qdata->qd_flags,
+                                       QDATA_IS_GRP(qdata) ? 'g' : 'u',
+                                       QDATA_IS_BLK(qdata) ? 'b': 'i',
+                                       qdata->qd_count, qdata->qd_qunit, *hardlimit,
+                                       qdata);
+                        else
+                                *hardlimit -= count;
                         break;
                 default:
                         LBUG();