2019-07-02 19:39:38 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright ( C ) 2019 Oracle . All Rights Reserved .
* Author : Darrick J . Wong < darrick . wong @ oracle . com >
*/
# ifndef __XFS_IWALK_H__
# define __XFS_IWALK_H__
2019-08-29 00:37:57 +03:00
/*
* Return codes for the inode / inobt walk function are 0 to continue iterating ,
* and non - zero to stop iterating . Any non - zero value will be passed up to the
* iwalk or inobt_walk caller . The special value - ECANCELED can be used to
* stop iteration , as neither iwalk nor inobt_walk will ever generate that
* error code on their own .
*/
2019-07-02 19:39:38 +03:00
/* Walk all inodes in the filesystem starting from @startino. */
typedef int ( * xfs_iwalk_fn ) ( struct xfs_mount * mp , struct xfs_trans * tp ,
xfs_ino_t ino , void * data ) ;
int xfs_iwalk ( struct xfs_mount * mp , struct xfs_trans * tp , xfs_ino_t startino ,
2019-07-04 06:36:28 +03:00
unsigned int flags , xfs_iwalk_fn iwalk_fn ,
unsigned int inode_records , void * data ) ;
2019-07-03 17:33:26 +03:00
int xfs_iwalk_threaded ( struct xfs_mount * mp , xfs_ino_t startino ,
2019-07-04 06:36:28 +03:00
unsigned int flags , xfs_iwalk_fn iwalk_fn ,
unsigned int inode_records , bool poll , void * data ) ;
/* Only iterate inodes within the same AG as @startino. */
2022-03-09 15:34:04 +03:00
# define XFS_IWALK_SAME_AG (1U << 0)
2019-07-04 06:36:28 +03:00
# define XFS_IWALK_FLAGS_ALL (XFS_IWALK_SAME_AG)
2019-07-02 19:39:38 +03:00
2019-07-02 19:39:43 +03:00
/* Walk all inode btree records in the filesystem starting from @startino. */
typedef int ( * xfs_inobt_walk_fn ) ( struct xfs_mount * mp , struct xfs_trans * tp ,
xfs_agnumber_t agno ,
const struct xfs_inobt_rec_incore * irec ,
void * data ) ;
int xfs_inobt_walk ( struct xfs_mount * mp , struct xfs_trans * tp ,
2019-07-04 06:36:28 +03:00
xfs_ino_t startino , unsigned int flags ,
xfs_inobt_walk_fn inobt_walk_fn , unsigned int inobt_records ,
void * data ) ;
/* Only iterate inobt records within the same AG as @startino. */
# define XFS_INOBT_WALK_SAME_AG (XFS_IWALK_SAME_AG)
# define XFS_INOBT_WALK_FLAGS_ALL (XFS_INOBT_WALK_SAME_AG)
2019-07-02 19:39:43 +03:00
2019-07-02 19:39:38 +03:00
# endif /* __XFS_IWALK_H__ */