xfs: do not use unchecked extent indices in xfs_bmapi
authorChristoph Hellwig <hch@infradead.org>
Wed, 11 May 2011 15:04:07 +0000 (15:04 +0000)
committerAlex Elder <aelder@sgi.com>
Wed, 25 May 2011 15:48:37 +0000 (10:48 -0500)
Make sure to only call xfs_iext_get_ext after we've validate the
extent index when moving on to the next index in xfs_bmapi.

Based on an earlier patch from Lachlan McIlroy.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Lachlan McIlroy <lmcilroy@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
fs/xfs/xfs_bmap.c

index 130ec4f..af655c1 100644 (file)
@@ -4825,12 +4825,13 @@ xfs_bmapi(
                /*
                 * Else go on to the next record.
                 */
-               ep = xfs_iext_get_ext(ifp, ++lastx);
                prev = got;
-               if (lastx >= nextents)
-                       eof = 1;
-               else
+               if (++lastx < nextents) {
+                       ep = xfs_iext_get_ext(ifp, lastx);
                        xfs_bmbt_get_all(ep, &got);
+               } else {
+                       eof = 1;
+               }
        }
        *nmap = n;
        /*