]> Git Repo - J-linux.git/blob - fs/xfs/xfs_fsmap.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / fs / xfs / xfs_fsmap.h
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright (C) 2017 Oracle.  All Rights Reserved.
4  * Author: Darrick J. Wong <[email protected]>
5  */
6 #ifndef __XFS_FSMAP_H__
7 #define __XFS_FSMAP_H__
8
9 struct fsmap;
10 struct fsmap_head;
11
12 /* internal fsmap representation */
13 struct xfs_fsmap {
14         dev_t           fmr_device;     /* device id */
15         uint32_t        fmr_flags;      /* mapping flags */
16         uint64_t        fmr_physical;   /* device offset of segment */
17         uint64_t        fmr_owner;      /* owner id */
18         xfs_fileoff_t   fmr_offset;     /* file offset of segment */
19         xfs_filblks_t   fmr_length;     /* length of segment, blocks */
20 };
21
22 struct xfs_fsmap_head {
23         uint32_t        fmh_iflags;     /* control flags */
24         uint32_t        fmh_oflags;     /* output flags */
25         unsigned int    fmh_count;      /* # of entries in array incl. input */
26         unsigned int    fmh_entries;    /* # of entries filled in (output). */
27
28         struct xfs_fsmap fmh_keys[2];   /* low and high keys */
29 };
30
31 /* internal fsmap record format */
32 struct xfs_fsmap_irec {
33         xfs_daddr_t     start_daddr;
34         xfs_daddr_t     len_daddr;
35         uint64_t        owner;          /* extent owner */
36         uint64_t        offset;         /* offset within the owner */
37         unsigned int    rm_flags;       /* rmap state flags */
38
39         /*
40          * rmapbt startblock corresponding to start_daddr, if the record came
41          * from an rmap btree.
42          */
43         xfs_agblock_t   rec_key;
44 };
45
46 int xfs_ioc_getfsmap(struct xfs_inode *ip, struct fsmap_head __user *arg);
47
48 #endif /* __XFS_FSMAP_H__ */
This page took 0.027635 seconds and 4 git commands to generate.