Merge branch 'for-4.7-zac' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
[cascardo/linux.git] / fs / btrfs / volumes.h
index 1939ebd..0ac90f8 100644 (file)
@@ -340,14 +340,14 @@ struct btrfs_raid_attr {
 };
 
 extern const struct btrfs_raid_attr btrfs_raid_array[BTRFS_NR_RAID_TYPES];
-
+extern const int btrfs_raid_mindev_error[BTRFS_NR_RAID_TYPES];
 extern const u64 btrfs_raid_group[BTRFS_NR_RAID_TYPES];
 
 struct map_lookup {
        u64 type;
        int io_align;
        int io_width;
-       int stripe_len;
+       u64 stripe_len;
        int sector_size;
        int num_stripes;
        int sub_stripes;
@@ -357,52 +357,6 @@ struct map_lookup {
 #define map_lookup_size(n) (sizeof(struct map_lookup) + \
                            (sizeof(struct btrfs_bio_stripe) * (n)))
 
-/*
- * Restriper's general type filter
- */
-#define BTRFS_BALANCE_DATA             (1ULL << 0)
-#define BTRFS_BALANCE_SYSTEM           (1ULL << 1)
-#define BTRFS_BALANCE_METADATA         (1ULL << 2)
-
-#define BTRFS_BALANCE_TYPE_MASK                (BTRFS_BALANCE_DATA |       \
-                                        BTRFS_BALANCE_SYSTEM |     \
-                                        BTRFS_BALANCE_METADATA)
-
-#define BTRFS_BALANCE_FORCE            (1ULL << 3)
-#define BTRFS_BALANCE_RESUME           (1ULL << 4)
-
-/*
- * Balance filters
- */
-#define BTRFS_BALANCE_ARGS_PROFILES    (1ULL << 0)
-#define BTRFS_BALANCE_ARGS_USAGE       (1ULL << 1)
-#define BTRFS_BALANCE_ARGS_DEVID       (1ULL << 2)
-#define BTRFS_BALANCE_ARGS_DRANGE      (1ULL << 3)
-#define BTRFS_BALANCE_ARGS_VRANGE      (1ULL << 4)
-#define BTRFS_BALANCE_ARGS_LIMIT       (1ULL << 5)
-#define BTRFS_BALANCE_ARGS_LIMIT_RANGE (1ULL << 6)
-#define BTRFS_BALANCE_ARGS_STRIPES_RANGE (1ULL << 7)
-#define BTRFS_BALANCE_ARGS_USAGE_RANGE (1ULL << 10)
-
-#define BTRFS_BALANCE_ARGS_MASK                        \
-       (BTRFS_BALANCE_ARGS_PROFILES |          \
-        BTRFS_BALANCE_ARGS_USAGE |             \
-        BTRFS_BALANCE_ARGS_DEVID |             \
-        BTRFS_BALANCE_ARGS_DRANGE |            \
-        BTRFS_BALANCE_ARGS_VRANGE |            \
-        BTRFS_BALANCE_ARGS_LIMIT |             \
-        BTRFS_BALANCE_ARGS_LIMIT_RANGE |       \
-        BTRFS_BALANCE_ARGS_STRIPES_RANGE |     \
-        BTRFS_BALANCE_ARGS_USAGE_RANGE)
-
-/*
- * Profile changing flags.  When SOFT is set we won't relocate chunk if
- * it already has the target profile (even though it may be
- * half-filled).
- */
-#define BTRFS_BALANCE_ARGS_CONVERT     (1ULL << 8)
-#define BTRFS_BALANCE_ARGS_SOFT                (1ULL << 9)
-
 struct btrfs_balance_args;
 struct btrfs_balance_progress;
 struct btrfs_balance_control {
@@ -445,13 +399,18 @@ int btrfs_scan_one_device(const char *path, fmode_t flags, void *holder,
                          struct btrfs_fs_devices **fs_devices_ret);
 int btrfs_close_devices(struct btrfs_fs_devices *fs_devices);
 void btrfs_close_extra_devices(struct btrfs_fs_devices *fs_devices, int step);
+void btrfs_assign_next_active_device(struct btrfs_fs_info *fs_info,
+               struct btrfs_device *device, struct btrfs_device *this_dev);
 int btrfs_find_device_missing_or_by_path(struct btrfs_root *root,
                                         char *device_path,
                                         struct btrfs_device **device);
+int btrfs_find_device_by_devspec(struct btrfs_root *root, u64 devid,
+                                        char *devpath,
+                                        struct btrfs_device **device);
 struct btrfs_device *btrfs_alloc_device(struct btrfs_fs_info *fs_info,
                                        const u64 *devid,
                                        const u8 *uuid);
-int btrfs_rm_device(struct btrfs_root *root, char *device_path);
+int btrfs_rm_device(struct btrfs_root *root, char *device_path, u64 devid);
 void btrfs_cleanup_fs_uuids(void);
 int btrfs_num_copies(struct btrfs_fs_info *fs_info, u64 logical, u64 len);
 int btrfs_grow_device(struct btrfs_trans_handle *trans,