xfs: simplify xlog_recover_inode_ra_pass2
authorChristoph Hellwig <hch@lst.de>
Tue, 28 Apr 2020 01:23:17 +0000 (18:23 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Mon, 4 May 2020 16:03:15 +0000 (09:03 -0700)
Don't bother to allocate memory and convert the log item when we
only need the block number and the length.  Just extract them directly
and call xlog_buf_readahead separately in each branch.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_log_recover.c

index 3a865f9aef905aef31bf09f163b7411503e6f422..08c62f5e1ba465a49faafa686b006488f4981854 100644 (file)
@@ -3890,22 +3890,17 @@ xlog_recover_inode_ra_pass2(
        struct xlog                     *log,
        struct xlog_recover_item        *item)
 {
-       struct xfs_inode_log_format     ilf_buf;
-       struct xfs_inode_log_format     *ilfp;
-       int                     error;
-
        if (item->ri_buf[0].i_len == sizeof(struct xfs_inode_log_format)) {
-               ilfp = item->ri_buf[0].i_addr;
+               struct xfs_inode_log_format     *ilfp = item->ri_buf[0].i_addr;
+
+               xlog_buf_readahead(log, ilfp->ilf_blkno, ilfp->ilf_len,
+                                  &xfs_inode_buf_ra_ops);
        } else {
-               ilfp = &ilf_buf;
-               memset(ilfp, 0, sizeof(*ilfp));
-               error = xfs_inode_item_format_convert(&item->ri_buf[0], ilfp);
-               if (error)
-                       return;
-       }
+               struct xfs_inode_log_format_32  *ilfp = item->ri_buf[0].i_addr;
 
-       xlog_buf_readahead(log, ilfp->ilf_blkno, ilfp->ilf_len,
-                          &xfs_inode_buf_ra_ops);
+               xlog_buf_readahead(log, ilfp->ilf_blkno, ilfp->ilf_len,
+                                  &xfs_inode_buf_ra_ops);
+       }
 }
 
 STATIC void