The compat/compat_ro/incompat feature flags are used by the feature set/get ioctls.
Showing the changes to include/uapi (1 of 2 files). Show all
Unified · Split
| @@ -222,6 +222,37 @@ struct btrfs_ioctl_fs_info_args { · 221 unmodified lines | |||
| 222 | __u64 reserved[122]; /* pad to 1k */ | 222 | __u64 reserved[122]; /* pad to 1k */ |
| 223 | }; | 223 | }; |
| 224 | 224 | ||
| 225 | /* | ||
| 226 | * feature flags | ||
| 227 | * | ||
| 228 | * Used by: | ||
| 229 | * struct btrfs_ioctl_feature_flags | ||
| 230 | */ | ||
| 231 | #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0) | ||
| 232 | |||
| 233 | #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0) | ||
| 234 | #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1) | ||
| 235 | #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2) | ||
| 236 | #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3) | ||
| 237 | /* | ||
| 238 | * some patches floated around with a second compression method | ||
| 239 | * lets save that incompat here for when they do get in | ||
| 240 | * Note we don't actually support it, we're just reserving the | ||
| 241 | * number | ||
| 242 | */ | ||
| 243 | #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4) | ||
| 244 | |||
| 245 | /* | ||
| 246 | * older kernels tried to do bigger metadata blocks, but the | ||
| 247 | * code was pretty buggy. Lets not let them try anymore. | ||
| 248 | */ | ||
| 249 | #define BTRFS_FEATURE_INCOMPAT_BIG_METADATA (1ULL << 5) | ||
| 250 | |||
| 251 | #define BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF (1ULL << 6) | ||
| 252 | #define BTRFS_FEATURE_INCOMPAT_RAID56 (1ULL << 7) | ||
| 253 | #define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8) | ||
| 254 | #define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9) | ||
| 255 | |||
| 225 | struct btrfs_ioctl_feature_flags { | 256 | struct btrfs_ioctl_feature_flags { |
| 226 | __u64 compat_flags; | 257 | __u64 compat_flags; |
| 227 | __u64 compat_ro_flags; | 258 | __u64 compat_ro_flags; |