mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 00:50:54 +07:00
xfs: do not do pointer arithmetic on extent records
We need to call xfs_iext_get_ext for the previous extent to get a valid pointer, and can't just do pointer arithmetics as they might be in different pages. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Lachlan McIlroy <lmcilroy@redhat.com> Signed-off-by: Alex Elder <aelder@sgi.com>
This commit is contained in:
parent
00239acf36
commit
f1c63b73cf
@ -5143,9 +5143,12 @@ xfs_bunmapi(
|
||||
*/
|
||||
ASSERT(bno >= del.br_blockcount);
|
||||
bno -= del.br_blockcount;
|
||||
if (bno < got.br_startoff) {
|
||||
if (--lastx >= 0)
|
||||
xfs_bmbt_get_all(--ep, &got);
|
||||
if (got.br_startoff > bno) {
|
||||
if (--lastx >= 0) {
|
||||
ep = xfs_iext_get_ext(ifp,
|
||||
lastx);
|
||||
xfs_bmbt_get_all(ep, &got);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
} else if (del.br_state == XFS_EXT_UNWRITTEN) {
|
||||
|
Loading…
Reference in New Issue
Block a user