aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ioctl.h
diff options
context:
space:
mode:
authorJan Schmidt <list.btrfs@jan-o-sch.net>2011-03-11 09:41:01 -0500
committerArne Jansen <sensille@gmx.net>2011-05-12 08:45:38 -0400
commit475f63874d739d7842a56da94687f18d583ae654 (patch)
tree096902bd87353d1e8be3cf6a9ecadb66fc620d11 /fs/btrfs/ioctl.h
parenta2de733c78fa7af51ba9670482fa7d392aa67c57 (diff)
btrfs: new ioctls for scrub
adds ioctls necessary to start and cancel scrubs, to get current progress and to get info about devices to be scrubbed. Note that the scrub is done per-device and that the ioctl only returns after the scrub for this devices is finished or has been canceled. Signed-off-by: Arne Jansen <sensille@gmx.net>
Diffstat (limited to 'fs/btrfs/ioctl.h')
-rw-r--r--fs/btrfs/ioctl.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/fs/btrfs/ioctl.h b/fs/btrfs/ioctl.h
index 37ac030d64b4..1a638ceeead8 100644
--- a/fs/btrfs/ioctl.h
+++ b/fs/btrfs/ioctl.h
@@ -32,6 +32,8 @@ struct btrfs_ioctl_vol_args {
32 32
33#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) 33#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
34#define BTRFS_SUBVOL_RDONLY (1ULL << 1) 34#define BTRFS_SUBVOL_RDONLY (1ULL << 1)
35#define BTRFS_FSID_SIZE 16
36#define BTRFS_UUID_SIZE 16
35 37
36#define BTRFS_SUBVOL_NAME_MAX 4039 38#define BTRFS_SUBVOL_NAME_MAX 4039
37struct btrfs_ioctl_vol_args_v2 { 39struct btrfs_ioctl_vol_args_v2 {
@@ -79,6 +81,33 @@ struct btrfs_scrub_progress {
79 * Intermittent error. */ 81 * Intermittent error. */
80}; 82};
81 83
84struct btrfs_ioctl_scrub_args {
85 __u64 devid; /* in */
86 __u64 start; /* in */
87 __u64 end; /* in */
88 __u64 flags; /* in */
89 struct btrfs_scrub_progress progress; /* out */
90 /* pad to 1k */
91 __u64 unused[(1024-32-sizeof(struct btrfs_scrub_progress))/8];
92};
93
94#define BTRFS_DEVICE_PATH_NAME_MAX 1024
95struct btrfs_ioctl_dev_info_args {
96 __u64 devid; /* in/out */
97 __u8 uuid[BTRFS_UUID_SIZE]; /* in/out */
98 __u64 bytes_used; /* out */
99 __u64 total_bytes; /* out */
100 __u64 unused[379]; /* pad to 4k */
101 __u8 path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */
102};
103
104struct btrfs_ioctl_fs_info_args {
105 __u64 max_id; /* out */
106 __u64 num_devices; /* out */
107 __u8 fsid[BTRFS_FSID_SIZE]; /* out */
108 __u64 reserved[124]; /* pad to 1k */
109};
110
82#define BTRFS_INO_LOOKUP_PATH_MAX 4080 111#define BTRFS_INO_LOOKUP_PATH_MAX 4080
83struct btrfs_ioctl_ino_lookup_args { 112struct btrfs_ioctl_ino_lookup_args {
84 __u64 treeid; 113 __u64 treeid;
@@ -240,4 +269,13 @@ struct btrfs_ioctl_space_args {
240 struct btrfs_ioctl_vol_args_v2) 269 struct btrfs_ioctl_vol_args_v2)
241#define BTRFS_IOC_SUBVOL_GETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 25, __u64) 270#define BTRFS_IOC_SUBVOL_GETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 25, __u64)
242#define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) 271#define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64)
272#define BTRFS_IOC_SCRUB _IOWR(BTRFS_IOCTL_MAGIC, 27, \
273 struct btrfs_ioctl_scrub_args)
274#define BTRFS_IOC_SCRUB_CANCEL _IO(BTRFS_IOCTL_MAGIC, 28)
275#define BTRFS_IOC_SCRUB_PROGRESS _IOWR(BTRFS_IOCTL_MAGIC, 29, \
276 struct btrfs_ioctl_scrub_args)
277#define BTRFS_IOC_DEV_INFO _IOWR(BTRFS_IOCTL_MAGIC, 30, \
278 struct btrfs_ioctl_dev_info_args)
279#define BTRFS_IOC_FS_INFO _IOR(BTRFS_IOCTL_MAGIC, 31, \
280 struct btrfs_ioctl_fs_info_args)
243#endif 281#endif