Re: [PATCH] xfs: Fix 'set but not used' warning in xfs_bmap_compute_alignments()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28 Jan 2021 at 23:14, Darrick J. Wong wrote:
> On Thu, Jan 28, 2021 at 10:34:12AM -0500, Brian Foster wrote:
>> On Wed, Jan 27, 2021 at 02:35:37PM +0530, Chandan Babu R wrote:
>> > With both CONFIG_XFS_DEBUG and CONFIG_XFS_WARN disabled, the only reference to
>> > local variable "error" in xfs_bmap_compute_alignments() gets eliminated during
>> > pre-processing stage of the compilation process. This causes the compiler to
>> > generate a "set but not used" warning.
>> >
>> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
>> > Signed-off-by: Chandan Babu R <chandanrlinux@xxxxxxxxx>
>> > ---
>> > This patch is applicable on top of current xfs-linux/for-next branch.
>> >
>> >  fs/xfs/libxfs/xfs_bmap.c | 9 ++++-----
>> >  1 file changed, 4 insertions(+), 5 deletions(-)
>> >
>> > diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
>> > index 2cd24bb06040..ba56554e8c05 100644
>> > --- a/fs/xfs/libxfs/xfs_bmap.c
>> > +++ b/fs/xfs/libxfs/xfs_bmap.c
>> > @@ -3471,7 +3471,6 @@ xfs_bmap_compute_alignments(
>> >  	struct xfs_mount	*mp = args->mp;
>> >  	xfs_extlen_t		align = 0; /* minimum allocation alignment */
>> >  	int			stripe_align = 0;
>> > -	int			error;
>> >
>> >  	/* stripe alignment for allocation is determined by mount parameters */
>> >  	if (mp->m_swidth && (mp->m_flags & XFS_MOUNT_SWALLOC))
>> > @@ -3484,10 +3483,10 @@ xfs_bmap_compute_alignments(
>> >  	else if (ap->datatype & XFS_ALLOC_USERDATA)
>> >  		align = xfs_get_extsz_hint(ap->ip);
>> >  	if (align) {
>> > -		error = xfs_bmap_extsize_align(mp, &ap->got, &ap->prev,
>> > -						align, 0, ap->eof, 0, ap->conv,
>> > -						&ap->offset, &ap->length);
>> > -		ASSERT(!error);
>> > +		if (xfs_bmap_extsize_align(mp, &ap->got, &ap->prev,
>> > +			align, 0, ap->eof, 0, ap->conv, &ap->offset,
>> > +			&ap->length))
>> > +			ASSERT(0);
>>
>> I was wondering if we should just make xfs_bmap_extsize_align() return
>> void and push the asserts down into the function itself, but it looks
>> like xfs_bmap_rtalloc() actually handles the error. Any idea on why we
>> might have that inconsistency?
>
> It only returns nonzero if isrt (the fifth parameter) is nonzero, and
> only if the requested range is still not aligned to the rt extent size
> after aligning it and eliminating any overlaps with existing extents.
>

Adding to what Darrick has mentioned above ...

Space on realtime devices are tracked at a granularity of "rextsize"
bytes. Each bit held in the data blocks of xfs_mount->m_rbmip represents usage
status of a single rextsized block. Most likely this seems to be underlying
reason for strict allocation alignment requirements for realtime files.

--
chandan



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux