[XFS] Fix extent list corruption in xfs_iext_irec_compact_full().
authorLachlan McIlroy <lachlan@sgi.com>
Fri, 26 Sep 2008 02:16:46 +0000 (12:16 +1000)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Fri, 26 Sep 2008 02:16:46 +0000 (12:16 +1000)
If we don't move all the records from the next buffer into the current
buffer then we need to update the er_extoff field of the next buffer as we
shift the remaining records to the start of the buffer.

SGI-PV: 987159

SGI-Modid: xfs-linux-melb:xfs-kern:32165a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Russell Cattelan <cattelan@thebarn.com>
fs/xfs/xfs_inode.c

index 00e80df..419cfc2 100644 (file)
@@ -4584,6 +4584,7 @@ xfs_iext_irec_compact_full(
                                        (XFS_LINEAR_EXTS -
                                                erp_next->er_extcount) *
                                        sizeof(xfs_bmbt_rec_t));
+                               erp_next->er_extoff += ext_diff;
                        }
                }