Re: [PATCH] libxfs: don't return cnt as failure from XFS_BUF_SET_PTR
From: Eric Sandeen <hidden>
Date: 2018-02-22 23:10:38
On 2/22/18 5:02 PM, Darrick J. Wong wrote:
On Thu, Feb 22, 2018 at 04:41:17PM -0600, Eric Sandeen wrote:quoted
On 2/22/18 3:46 PM, Darrick J. Wong wrote:quoted
On Thu, Feb 22, 2018 at 03:33:04PM -0600, Eric Sandeen wrote:quoted
We must not get here very often, because any test of an error from XFS_BUF_SET_PTR will fail because it returns whatever is sent in as cnt. Fix the macro to return 0 so that "error = XFS_BUF_SET_PTR()" works as expected. Should probably make this xfs_buf_associate_memory() to be more like kernelspace, but for now just fix up the bug. Found this via xfs_logprint failing for no good reason. Signed-off-by: Eric Sandeen <redacted> ---diff --git a/libxfs/libxfs_io.h b/libxfs/libxfs_io.h index 81d2804..0ae7a28 100644 --- a/libxfs/libxfs_io.h +++ b/libxfs/libxfs_io.h@@ -105,6 +105,7 @@ enum xfs_buf_flags_t { /* b_flags bits */ #define XFS_BUF_SET_PTR(bp,p,cnt) ({ \ (bp)->b_addr = (char *)(p); \ XFS_BUF_SET_COUNT(bp,cnt); \ + 0; \There are only two callers of this macro and it's not exported to xfslibs headers, so why not just fix them not to care about the return value?because it marginally matches kernel code ... *shrug* I'd rather have libxlog diverge less from kernel, not more, overall.Uhh... well in that case, I think you should rename XFS_BUF_SET_PTR with xfs_buf_associate_memory (the helper function that xlog_bread_offset uses in the kernel).
"Should probably make this xfs_buf_associate_memory() to be more like kernelspace, but for now just fix up the bug." But sure, I can send a 2nd patch to do that. -Eric