From: Mikhail Pershin Date: Thu, 30 May 2019 09:30:43 +0000 (+0300) Subject: LU-12120 grants: prevent negative ted_grant value X-Git-Tag: 2.12.3-RC1~179 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F84%2F35084%2F2;p=fs%2Flustre-release.git LU-12120 grants: prevent negative ted_grant value Add check in tgt_grant_shrink() to protect ted_grant against negative value. Lustre-change: https://review.whamcloud.com/34996 Lustre-commit: 7e08317ef5cbed5cd587017cbe343eb4cc52822c Signed-off-by: Mikhail Pershin Change-Id: Iddea86f052124413ac60f5d0f26bcb68e376ede5 Reviewed-by: Quentin Bouget Reviewed-by: Andreas Dilger Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/35084 Tested-by: Jenkins Tested-by: Maloo --- diff --git a/lustre/target/tgt_grant.c b/lustre/target/tgt_grant.c index f6ee8d1..e832bc9 100644 --- a/lustre/target/tgt_grant.c +++ b/lustre/target/tgt_grant.c @@ -605,6 +605,14 @@ static void tgt_grant_shrink(struct obd_export *exp, struct obdo *oa, grant_shrink = oa->o_grant; + if (ted->ted_grant < grant_shrink) { + CDEBUG(D_CACHE, + "%s: cli %s/%p wants %lu shrinked > grant %lu\n", + obd->obd_name, exp->exp_client_uuid.uuid, exp, + grant_shrink, ted->ted_grant); + grant_shrink = ted->ted_grant; + } + ted->ted_grant -= grant_shrink; tgd->tgd_tot_granted -= grant_shrink;