summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-03-10 13:17:18 -0400
committerChris Mason <chris.mason@oracle.com>2009-03-10 13:17:18 -0400
commit913d952eb573c3d1f7487e83b5590e13e7cae2bd (patch)
treece01f54ffbd6ae871c4e11560ae1c826cffe4d3a
parent4184ea7f908d95f329febc3665cf66da8568b467 (diff)
downloadlinux-913d952eb573c3d1f7487e83b5590e13e7cae2bd.tar.gz
linux-913d952eb573c3d1f7487e83b5590e13e7cae2bd.tar.bz2
linux-913d952eb573c3d1f7487e83b5590e13e7cae2bd.zip
Btrfs: Clear space_info full when adding new devices
The full flag on the space info structs tells the allocator not to try and allocate more chunks because the devices in the FS are fully allocated. When more devices are added, we need to clear the full flag so the allocator knows it has more space available. Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/volumes.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 7aa3810d7f69..dd06e18e5aac 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1374,6 +1374,12 @@ int btrfs_init_new_device(struct btrfs_root *root, char *device_path)
ret = btrfs_add_device(trans, root, device);
}
+ /*
+ * we've got more storage, clear any full flags on the space
+ * infos
+ */
+ btrfs_clear_space_info_full(root->fs_info);
+
unlock_chunks(root);
btrfs_commit_transaction(trans, root);