Whamcloud - gitweb
LU-19016 target: reset o_grant if no grant is returned 34/59234/3
authorAlex Zhuravlev <bzzz@whamcloud.com>
Wed, 14 May 2025 16:35:13 +0000 (19:35 +0300)
committerOleg Drokin <green@whamcloud.com>
Tue, 27 May 2025 04:07:14 +0000 (04:07 +0000)
tgt_grant_dealloc() should reset o_grant (which goes back
to the client) if the server doesn't want to return grants.

Test-Parameters: testlist=sanity
Test-Parameters: testlist=sanity
Test-Parameters: testlist=sanity
Test-Parameters: testlist=sanity-quota,sanity-quota
Fixes: df2b5d99ad ("LU-17933 target: do not break grants on RPC failure")
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I33851c1e023534f6b5cf3c5596a23b0835a3fe01
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/59234
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Sergey Cheremencev <scherementsev@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/target/tgt_grant.c

index 8b436e9..1e7cc9a 100644 (file)
@@ -999,6 +999,7 @@ void tgt_grant_dealloc(struct obd_export *exp, struct obdo *oa)
        if (!disconnected) {
                tgd->tgd_tot_granted -= oa->o_grant;
                ted->ted_grant -= oa->o_grant;
+               oa->o_grant = 0;
        }
        spin_unlock(&tgd->tgd_grant_lock);
 }