Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4e5ae8386b55677bde05bbd38b8fc82c67ad4564
Commit:     4e5ae8386b55677bde05bbd38b8fc82c67ad4564
Parent:     210c6f1caa451623e14a7cd71000d2c2e0d9cc43
Author:     David Chinner <[EMAIL PROTECTED]>
AuthorDate: Tue Jun 5 16:24:15 2007 +1000
Committer:  Tim Shimmin <[EMAIL PROTECTED]>
CommitDate: Sat Jul 14 15:29:37 2007 +1000

    [XFS] xfs_bmapi fails to update the previous extent pointer
    
    When processing multiple extent maps, xfs_bmapi needs to keep track of the
    extent behind the one it is currently working on to be able to trim extent
    ranges correctly. Failing to update the previous pointer can result in
    corrupted extent lists in memory and this will result in panics or assert
    failures.
    
    Update the previous pointer correctly when we move to the next extent to
    process.
    
    SGI-PV: 965631
    SGI-Modid: xfs-linux-melb:xfs-kern:28773a
    
    Signed-off-by: David Chinner <[EMAIL PROTECTED]>
    Signed-off-by: Vlad Apostolov <[EMAIL PROTECTED]>
    Signed-off-by: Tim Shimmin <[EMAIL PROTECTED]>
---
 fs/xfs/xfs_bmap.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index b1ea26e..9a654fa 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -5219,10 +5219,10 @@ xfs_bmapi(
                 * Else go on to the next record.
                 */
                ep = xfs_iext_get_ext(ifp, ++lastx);
-               if (lastx >= nextents) {
+               prev = got;
+               if (lastx >= nextents)
                        eof = 1;
-                       prev = got;
-               } else
+               else
                        xfs_bmbt_get_all(ep, &got);
        }
        ifp->if_lastex = lastx;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to