gfs2: Change BUG_ON to an assert_withdraw in gfs2_quota_change
authorBob Peterson <rpeterso@redhat.com>
Tue, 5 May 2020 16:50:24 +0000 (11:50 -0500)
committerAndreas Gruenbacher <agruenba@redhat.com>
Fri, 8 May 2020 16:45:12 +0000 (18:45 +0200)
Before this patch, gfs2_quota_change() would BUG_ON if the
qa_ref counter was not a positive number. This patch changes it to
be a withdraw instead. That way we can debug things more easily.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/quota.c

index cc0c4b5800be93b658b82bbb4b4eab09bbece428..a62be4267c170373558e213e99e128bcf1267744 100644 (file)
@@ -1270,7 +1270,9 @@ void gfs2_quota_change(struct gfs2_inode *ip, s64 change,
        if (ip->i_diskflags & GFS2_DIF_SYSTEM)
                return;
 
-       BUG_ON(ip->i_qadata->qa_ref <= 0);
+       if (gfs2_assert_withdraw(sdp, ip->i_qadata &&
+                                ip->i_qadata->qa_ref > 0))
+               return;
        for (x = 0; x < ip->i_qadata->qa_qd_num; x++) {
                qd = ip->i_qadata->qa_qd[x];