From c0d602fc03147c8592011b079223474371fb4a44 Mon Sep 17 00:00:00 2001 From: johann Date: Tue, 6 Oct 2009 08:49:19 +0000 Subject: [PATCH] Branch b_release_1_8_1 b=18630 i=johann don't LBUG on release quota error. Just a workaround until the problem is understood. --- lustre/ChangeLog | 5 +++++ lustre/quota/quota_context.c | 21 ++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index df32152d..3dfc7a1 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -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. ------------------------------------------------------------------------------- diff --git a/lustre/quota/quota_context.c b/lustre/quota/quota_context.c index 423629b..3f19a9e 100644 --- a/lustre/quota/quota_context.c +++ b/lustre/quota/quota_context.c @@ -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(); -- 1.8.3.1