blob: 133e860bb82676f15252369fb061423b5144369c [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_FILEMAP_H_
#define XFS_SCRUB_FILEMAP_H_
/* inode fork block mapping */
struct file_bmap {
uint64_t bm_offset; /* file offset of segment in bytes */
uint64_t bm_physical; /* physical starting byte */
uint64_t bm_length; /* length of segment, bytes */
uint32_t bm_flags; /* output flags */
};
/*
* Visit each inode fork mapping. Return 0 to continue iteration or a positive
* error code to stop iterating and return to the caller.
*/
typedef int (*scrub_bmap_iter_fn)(struct scrub_ctx *ctx, int fd, int whichfork,
struct fsxattr *fsx, struct file_bmap *bmap, void *arg);
int scrub_iterate_filemaps(struct scrub_ctx *ctx, int fd, int whichfork,
struct file_bmap *key, scrub_bmap_iter_fn fn, void *arg);
#endif /* XFS_SCRUB_FILEMAP_H_ */