From: Eric Sandeen Date: Fri, 9 Mar 2018 02:35:22 +0000 (-0600) Subject: libxfs: Replace XFS_BUF_SET_PTR with xfs_buf_associate_memory X-Git-Tag: v4.16.0-rc1~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fc9f709f5beeb2b89136662013fc0bb65828ca8f;p=thirdparty%2Fxfsprogs-dev.git libxfs: Replace XFS_BUF_SET_PTR with xfs_buf_associate_memory 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 Reviewed-by: Darrick J. Wong Signed-off-by: Eric Sandeen --- diff --git a/libxfs/libxfs_io.h b/libxfs/libxfs_io.h index 6308a742b..78b67802b 100644 --- a/libxfs/libxfs_io.h +++ b/libxfs/libxfs_io.h @@ -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__ */ diff --git a/libxlog/xfs_log_recover.c b/libxlog/xfs_log_recover.c index 6bd000c07..58d91823f 100644 --- a/libxlog/xfs_log_recover.c +++ b/libxlog/xfs_log_recover.c @@ -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;