]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: fix libxfs api violations in quota repair code
authorEric Sandeen <sandeen@redhat.com>
Thu, 31 May 2018 19:09:55 +0000 (14:09 -0500)
committerEric Sandeen <sandeen@redhat.com>
Thu, 31 May 2018 19:09:55 +0000 (14:09 -0500)
My "repair quotas" patch forgot about our libxfs API tricks,
fix that.

Fixes: 5857dce ("xfs_repair: check and repair quota metadata")
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/libxfs_api_defs.h
repair/dinode.c

index 56f9f8caa1d7d69858b5c072295fdc77e93ef8ad..63bf27eac8fb0acdbb1d6e9e1fee661f149969cf 100644 (file)
 #define xfs_sb_quota_from_disk         libxfs_sb_quota_from_disk
 #define xfs_sb_to_disk                 libxfs_sb_to_disk
 
+#define xfs_calc_dquots_per_chunk      libxfs_calc_dquots_per_chunk
+#define xfs_dquot_verify               libxfs_dquot_verify
+#define xfs_dquot_repair               libxfs_dquot_repair
+
 #define xfs_symlink_blocks             libxfs_symlink_blocks
 #define xfs_symlink_hdr_ok             libxfs_symlink_hdr_ok
 
index e8edcd4c4762c27f30f94d2ce63be854c8f21990..49d5d058ac4794a9b66ceb31cb61da108e6eb5fd 100644 (file)
@@ -1345,7 +1345,7 @@ process_quota_inode(
        }
 
        dqchunklen = XFS_FSB_TO_BB(mp, XFS_DQUOT_CLUSTER_SIZE_FSB);
-       dqperchunk = xfs_calc_dquots_per_chunk(dqchunklen);
+       dqperchunk = libxfs_calc_dquots_per_chunk(dqchunklen);
        dqid = 0;
        qbno = NULLFILEOFF;
 
@@ -1367,12 +1367,12 @@ _("cannot read inode %" PRIu64 ", file block %" PRIu64 ", disk block %" PRIu64 "
 
                dqb = bp->b_addr;
                for (i = 0; i < dqperchunk; i++, dqid++, dqb++) {
-                       xfs_failaddr_t  fa;
                        int             bad_dqb = 0;
 
                        /* We only print the first problem we find */
                        if (xfs_sb_version_hascrc(&mp->m_sb)) {
-                               if (!xfs_verify_cksum((char *)dqb, sizeof(*dqb),
+                               if (!libxfs_verify_cksum((char *)dqb,
+                                                       sizeof(*dqb),
                                                        XFS_DQUOT_CRC_OFF)) {
                                        do_warn(_("%s: bad CRC for id %u. "),
                                                        quota_string, dqid);
@@ -1388,8 +1388,8 @@ _("cannot read inode %" PRIu64 ", file block %" PRIu64 ", disk block %" PRIu64 "
                                        goto bad;
                                }
                        }
-                       fa = xfs_dquot_verify(mp, &dqb->dd_diskdq, dqid, quota_type, 0);
-                       if (fa) {
+                       if (libxfs_dquot_verify(mp, &dqb->dd_diskdq, dqid,
+                                               quota_type, 0) != NULL) {
                                do_warn(_("%s: Corrupt quota for id %u. "),
                                                quota_string, dqid);
                                bad_dqb = 1;
@@ -1401,7 +1401,8 @@ bad:
                                        do_warn(_("Would correct.\n"));
                                else {
                                        do_warn(_("Corrected.\n"));
-                                       xfs_dquot_repair(mp, &dqb->dd_diskdq, dqid, quota_type);
+                                       libxfs_dquot_repair(mp, &dqb->dd_diskdq,
+                                                           dqid, quota_type);
                                        writebuf = 1;
                                }
                        }