xfs: only look at the fork format in xfs_idestroy_fork

Stop using the XFS_IFEXTENTS flag, and instead switch on the fork format
in xfs_idestroy_fork to decide how to cleanup.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
Christoph Hellwig 2021-04-13 11:15:10 -07:00 коммит произвёл Darrick J. Wong
Родитель 605e74e292
Коммит 0eba048dd3
1 изменённых файлов: 6 добавлений и 7 удалений

Просмотреть файл

@ -522,17 +522,16 @@ xfs_idestroy_fork(
ifp->if_broot = NULL;
}
/*
* If the format is local, then we can't have an extents array so just
* look for an inline data array. If we're not local then we may or may
* not have an extents list, so check and free it up if we do.
*/
if (ifp->if_format == XFS_DINODE_FMT_LOCAL) {
switch (ifp->if_format) {
case XFS_DINODE_FMT_LOCAL:
kmem_free(ifp->if_u1.if_data);
ifp->if_u1.if_data = NULL;
} else if (ifp->if_flags & XFS_IFEXTENTS) {
break;
case XFS_DINODE_FMT_EXTENTS:
case XFS_DINODE_FMT_BTREE:
if (ifp->if_height)
xfs_iext_destroy(ifp);
break;
}
}