diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2012-01-16 20:04:49 (GMT) |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2012-01-16 20:04:49 (GMT) |
commit | 837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961 (patch) | |
tree | 4ef87d05240e90480749c345274a83094caf66f0 /fs/btrfs/volumes.h | |
parent | 9555c6c180600b40f6e86bd4dc53bf47e06ed663 (diff) | |
download | linux-fsl-qoriq-837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961.tar.xz |
Btrfs: allow for pausing restriper
Implement an ioctl for pausing restriper. This pauses the relocation,
but balance is still considered to be "in progress": balance item is
not deleted, other volume operations cannot be started, etc. If paused
in the middle of profile changing operation we will continue making
allocations with the target profile.
Add a hook to close_ctree() to pause restriper and free its data
structures on unmount. (It's safe to unmount when restriper is in
"paused" state, we will resume with the same parameters on the next
mount)
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/btrfs/volumes.h')
-rw-r--r-- | fs/btrfs/volumes.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h index cd25ea5..80953af 100644 --- a/fs/btrfs/volumes.h +++ b/fs/btrfs/volumes.h @@ -273,6 +273,7 @@ int btrfs_init_new_device(struct btrfs_root *root, char *path); int btrfs_balance(struct btrfs_balance_control *bctl, struct btrfs_ioctl_balance_args *bargs); int btrfs_recover_balance(struct btrfs_root *tree_root); +int btrfs_pause_balance(struct btrfs_fs_info *fs_info); int btrfs_chunk_readonly(struct btrfs_root *root, u64 chunk_offset); int find_free_dev_extent(struct btrfs_trans_handle *trans, struct btrfs_device *device, u64 num_bytes, |