diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-07-24 11:57:52 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:04:05 -0400 |
commit | 3eaa2885276fd6dac7b076a793932428b7168e74 (patch) | |
tree | b06382bec68bf1755597a74ac8225f3bcddda5e5 /fs/btrfs/disk-io.c | |
parent | 64f26f745084872b916cd1bef6054e21b15c5784 (diff) |
Btrfs: Fix the defragmention code and the block relocation code for data=ordered
Before setting an extent to delalloc, the code needs to wait for
pending ordered extents.
Also, the relocation code needs to wait for ordered IO before scanning
the block group again. This is because the extents are not removed
until the IO for the new extents is finished
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 7ce3f83c5dd6..ec01062eb41d 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -1252,6 +1252,9 @@ struct btrfs_root *open_ctree(struct super_block *sb, | |||
1252 | fs_info->btree_inode->i_nlink = 1; | 1252 | fs_info->btree_inode->i_nlink = 1; |
1253 | fs_info->thread_pool_size = min(num_online_cpus() + 2, 8); | 1253 | fs_info->thread_pool_size = min(num_online_cpus() + 2, 8); |
1254 | 1254 | ||
1255 | INIT_LIST_HEAD(&fs_info->ordered_extents); | ||
1256 | spin_lock_init(&fs_info->ordered_extent_lock); | ||
1257 | |||
1255 | sb->s_blocksize = 4096; | 1258 | sb->s_blocksize = 4096; |
1256 | sb->s_blocksize_bits = blksize_bits(4096); | 1259 | sb->s_blocksize_bits = blksize_bits(4096); |
1257 | 1260 | ||