]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
libxfs: Replace XFS_BUF_SET_PTR with xfs_buf_associate_memory
authorEric Sandeen <sandeen@redhat.com>
Fri, 9 Mar 2018 02:35:22 +0000 (20:35 -0600)
committerEric Sandeen <sandeen@redhat.com>
Fri, 9 Mar 2018 02:35:22 +0000 (20:35 -0600)
We test the return value of the macro, but it returns
returns a side-effect which looks like failure.  Write
a userspace-libxfs-specific version of xfs_buf_associate_memory
to make this code a tad more like the kernel, with a proper
return value to boot.

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_io.h
libxlog/xfs_log_recover.c

index 6308a742bc2ac993c05ff3e2486690517e5db6f8..78b67802b1cd636a4e7cf950cf0589f4b9bd387c 100644 (file)
@@ -103,10 +103,6 @@ enum xfs_buf_flags_t {     /* b_flags bits */
 #define XFS_BUF_SIZE(bp)               ((bp)->b_bcount)
 #define XFS_BUF_COUNT(bp)              ((bp)->b_bcount)
 #define XFS_BUF_TARGET(bp)             ((bp)->b_dev)
-#define XFS_BUF_SET_PTR(bp,p,cnt)      ({      \
-       (bp)->b_addr = (char *)(p);             \
-       XFS_BUF_SET_COUNT(bp,cnt);              \
-})
 
 #define XFS_BUF_SET_ADDR(bp,blk)       ((bp)->b_bn = (blk))
 #define XFS_BUF_SET_COUNT(bp,cnt)      ((bp)->b_bcount = (cnt))
@@ -230,4 +226,12 @@ xfs_buf_update_cksum(struct xfs_buf *bp, unsigned long cksum_offset)
                         cksum_offset);
 }
 
+static inline int
+xfs_buf_associate_memory(struct xfs_buf *bp, void *mem, size_t len)
+{
+       bp->b_addr = mem;
+       bp->b_bcount = len;
+       return 0;
+}
+
 #endif /* __LIBXFS_IO_H__ */
index 6bd000c0712d2071178669feb9238ab342fb66bb..58d91823fbf58b9147c74b06c04291ca65467ce3 100644 (file)
@@ -171,14 +171,14 @@ xlog_bread_offset(
        int             orig_len = bp->b_bcount;
        int             error, error2;
 
-       error = XFS_BUF_SET_PTR(bp, offset, BBTOB(nbblks));
+       error = xfs_buf_associate_memory(bp, offset, BBTOB(nbblks));
        if (error)
                return error;
 
        error = xlog_bread_noalign(log, blk_no, nbblks, bp);
 
        /* must reset buffer pointer even on error */
-       error2 = XFS_BUF_SET_PTR(bp, orig_offset, orig_len);
+       error2 = xfs_buf_associate_memory(bp, orig_offset, orig_len);
        if (error)
                return error;
        return error2;