summaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorLachlan McIlroy <lachlan@sgi.com>2008-09-26 12:16:46 +1000
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-09-26 12:16:46 +1000
commitf1ccd2955157e1aff992f6aaaba0944209076220 (patch)
tree224a32be1bd5cd508d0b85bc446783ea939b7ad3 /fs/xfs
parent6ef190cc92e33565accff6a320f0e7d90480bfe7 (diff)
downloadlinux-stable-f1ccd2955157e1aff992f6aaaba0944209076220.tar.gz
linux-stable-f1ccd2955157e1aff992f6aaaba0944209076220.tar.bz2
linux-stable-f1ccd2955157e1aff992f6aaaba0944209076220.zip
[XFS] Fix extent list corruption in xfs_iext_irec_compact_full().
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>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/xfs_inode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 00e80df9dd9d..419cfc2eacb3 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -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;
}
}