xfs: clean up dqblk extraction
[platform/kernel/linux-rpi.git] / fs / xfs / xfs_dquot_item_recover.c
index 8966ba8..db2cb5e 100644 (file)
@@ -65,6 +65,7 @@ xlog_recover_dquot_commit_pass2(
 {
        struct xfs_mount                *mp = log->l_mp;
        struct xfs_buf                  *bp;
+       struct xfs_dqblk                *dqb;
        struct xfs_disk_dquot           *ddq, *recddq;
        struct xfs_dq_logformat         *dq_f;
        xfs_failaddr_t                  fa;
@@ -130,14 +131,14 @@ xlog_recover_dquot_commit_pass2(
                return error;
 
        ASSERT(bp);
-       ddq = xfs_buf_offset(bp, dq_f->qlf_boffset);
+       dqb = xfs_buf_offset(bp, dq_f->qlf_boffset);
+       ddq = &dqb->dd_diskdq;
 
        /*
         * If the dquot has an LSN in it, recover the dquot only if it's less
         * than the lsn of the transaction we are replaying.
         */
        if (xfs_has_crc(mp)) {
-               struct xfs_dqblk *dqb = (struct xfs_dqblk *)ddq;
                xfs_lsn_t       lsn = be64_to_cpu(dqb->dd_lsn);
 
                if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) {
@@ -147,7 +148,7 @@ xlog_recover_dquot_commit_pass2(
 
        memcpy(ddq, recddq, item->ri_buf[1].i_len);
        if (xfs_has_crc(mp)) {
-               xfs_update_cksum((char *)ddq, sizeof(struct xfs_dqblk),
+               xfs_update_cksum((char *)dqb, sizeof(struct xfs_dqblk),
                                 XFS_DQUOT_CRC_OFF);
        }