Message ID | 20200316153155.GE256767@magnolia (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | xfs: fix incorrect test in xfs_alloc_ag_vextent_lastblock | expand |
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); >
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 --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);