blob: 189fa282d4c3661fcd9d8cf77037512591f3aa57 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2018 Oracle. All Rights Reserved.
* Author: Darrick J. Wong <darrick.wong@oracle.com>
*/
#ifndef XFS_SCRUB_INODES_H_
#define XFS_SCRUB_INODES_H_
/*
* Visit each space mapping of an inode fork. Return 0 to continue iteration
* or a positive error code to interrupt iteraton. If ESTALE is returned,
* iteration will be restarted from the beginning of the inode allocation
* group. Any other non zero value will stop iteration. The special return
* value ECANCELED can be used to stop iteration, because the inode iteration
* function never generates that error code on its own.
*/
typedef int (*scrub_inode_iter_fn)(struct scrub_ctx *ctx,
struct xfs_handle *handle, struct xfs_bulkstat *bs, void *arg);
int scrub_scan_all_inodes(struct scrub_ctx *ctx, scrub_inode_iter_fn fn,
void *arg);
int scrub_open_handle(struct xfs_handle *handle);
void xfs_scrub_ino_descr(struct scrub_ctx *ctx, struct xfs_handle *handle,
char *buf, size_t buflen);
#endif /* XFS_SCRUB_INODES_H_ */