diff options
author | Stefan Behrens <sbehrens@giantdisaster.de> | 2012-05-07 14:00:20 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2013-01-31 13:47:26 +0100 |
commit | 7e08a9116d9d692e0e298197de55b6b5505373bf (patch) | |
tree | 14c8e690382a882a699ba48dfb3dc0672d5d6bce /volumes.c | |
parent | 5b8826ddfd1c4fcdcfe9f78fd80cfeeac9de1b21 (diff) |
Btrfs-progs: add support for device replace procedure
This is the user mode part of the device replace patch series.
The command group "btrfs replace" is added with three commands:
- btrfs replace start srcdev|srcdevid targetdev [-Bfr] mount_point
- btrfs replace status mount_point [-1]
- btrfs replace cancel mount_point
Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
Diffstat (limited to 'volumes.c')
-rw-r--r-- | volumes.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -1219,6 +1219,22 @@ struct btrfs_device *btrfs_find_device(struct btrfs_root *root, u64 devid, return NULL; } +struct btrfs_device *btrfs_find_device_by_devid(struct btrfs_root *root, + u64 devid, int instance) +{ + struct list_head *head = &root->fs_info->fs_devices->devices; + struct btrfs_device *dev; + struct list_head *cur; + int num_found = 0; + + list_for_each(cur, head) { + dev = list_entry(cur, struct btrfs_device, dev_list); + if (dev->devid == devid && num_found++ == instance) + return dev; + } + return NULL; +} + int btrfs_bootstrap_super_map(struct btrfs_mapping_tree *map_tree, struct btrfs_fs_devices *fs_devices) { |