diff mbox series

xfs: fix incorrect test in xfs_alloc_ag_vextent_lastblock

Message ID 20200316153155.GE256767@magnolia (mailing list archive)
State Accepted
Headers show
Series xfs: fix incorrect test in xfs_alloc_ag_vextent_lastblock | expand

Commit Message

Darrick J. Wong March 16, 2020, 3:31 p.m. UTC
From: Darrick J. Wong <darrick.wong@oracle.com>

When I lifted the code in xfs_alloc_ag_vextent_lastblock out of a loop,
I forgot to convert all the accesses to len to be pointer dereferences.

Coverity-id: 1457918
Fixes: 5113f8ec3753ed ("xfs: clean up weird while loop in xfs_alloc_ag_vextent_near")
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
 fs/xfs/libxfs/xfs_alloc.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Brian Foster March 16, 2020, 3:34 p.m. UTC | #1
On Mon, Mar 16, 2020 at 08:31:55AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> When I lifted the code in xfs_alloc_ag_vextent_lastblock out of a loop,
> I forgot to convert all the accesses to len to be pointer dereferences.
> 
> Coverity-id: 1457918
> Fixes: 5113f8ec3753ed ("xfs: clean up weird while loop in xfs_alloc_ag_vextent_near")
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> ---

Reviewed-by: Brian Foster <bfoster@redhat.com>

>  fs/xfs/libxfs/xfs_alloc.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
> index 337822115bbc..203e74fa64aa 100644
> --- a/fs/xfs/libxfs/xfs_alloc.c
> +++ b/fs/xfs/libxfs/xfs_alloc.c
> @@ -1514,7 +1514,7 @@ xfs_alloc_ag_vextent_lastblock(
>  	 * maxlen, go to the start of this block, and skip all those smaller
>  	 * than minlen.
>  	 */
> -	if (len || args->alignment > 1) {
> +	if (*len || args->alignment > 1) {
>  		acur->cnt->bc_ptrs[0] = 1;
>  		do {
>  			error = xfs_alloc_get_rec(acur->cnt, bno, len, &i);
>
Christoph Hellwig March 17, 2020, 6:34 p.m. UTC | #2
On Mon, Mar 16, 2020 at 08:31:55AM -0700, Darrick J. Wong wrote:
> diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
> index 337822115bbc..203e74fa64aa 100644
> --- a/fs/xfs/libxfs/xfs_alloc.c
> +++ b/fs/xfs/libxfs/xfs_alloc.c
> @@ -1514,7 +1514,7 @@ xfs_alloc_ag_vextent_lastblock(
>  	 * maxlen, go to the start of this block, and skip all those smaller
>  	 * than minlen.
>  	 */
> -	if (len || args->alignment > 1) {
> +	if (*len || args->alignment > 1) {
>  		acur->cnt->bc_ptrs[0] = 1;
>  		do {
>  			error = xfs_alloc_get_rec(acur->cnt, bno, len, &i);

The change definitivelly restores the old behavior.  Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
diff mbox series

Patch

diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
index 337822115bbc..203e74fa64aa 100644
--- a/fs/xfs/libxfs/xfs_alloc.c
+++ b/fs/xfs/libxfs/xfs_alloc.c
@@ -1514,7 +1514,7 @@  xfs_alloc_ag_vextent_lastblock(
 	 * maxlen, go to the start of this block, and skip all those smaller
 	 * than minlen.
 	 */
-	if (len || args->alignment > 1) {
+	if (*len || args->alignment > 1) {
 		acur->cnt->bc_ptrs[0] = 1;
 		do {
 			error = xfs_alloc_get_rec(acur->cnt, bno, len, &i);