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:
Родитель
605e74e292
Коммит
0eba048dd3
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче