summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_fsmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_fsmap.h')
-rw-r--r--fs/xfs/xfs_fsmap.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/fs/xfs/xfs_fsmap.h b/fs/xfs/xfs_fsmap.h
index c6c57739b862..06e492fd479d 100644
--- a/fs/xfs/xfs_fsmap.h
+++ b/fs/xfs/xfs_fsmap.h
@@ -7,6 +7,7 @@
#define __XFS_FSMAP_H__
struct fsmap;
+struct fsmap_head;
/* internal fsmap representation */
struct xfs_fsmap {
@@ -27,13 +28,21 @@ struct xfs_fsmap_head {
struct xfs_fsmap fmh_keys[2]; /* low and high keys */
};
-void xfs_fsmap_from_internal(struct fsmap *dest, struct xfs_fsmap *src);
-void xfs_fsmap_to_internal(struct xfs_fsmap *dest, struct fsmap *src);
-
-/* fsmap to userspace formatter - copy to user & advance pointer */
-typedef int (*xfs_fsmap_format_t)(struct xfs_fsmap *, void *);
+/* internal fsmap record format */
+struct xfs_fsmap_irec {
+ xfs_daddr_t start_daddr;
+ xfs_daddr_t len_daddr;
+ uint64_t owner; /* extent owner */
+ uint64_t offset; /* offset within the owner */
+ unsigned int rm_flags; /* rmap state flags */
+
+ /*
+ * rmapbt startblock corresponding to start_daddr, if the record came
+ * from an rmap btree.
+ */
+ xfs_agblock_t rec_key;
+};
-int xfs_getfsmap(struct xfs_mount *mp, struct xfs_fsmap_head *head,
- xfs_fsmap_format_t formatter, void *arg);
+int xfs_ioc_getfsmap(struct xfs_inode *ip, struct fsmap_head __user *arg);
#endif /* __XFS_FSMAP_H__ */