aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-07-24 11:57:52 -0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:05 -0400
commit3eaa2885276fd6dac7b076a793932428b7168e74 (patch)
treeb06382bec68bf1755597a74ac8225f3bcddda5e5 /fs/btrfs/disk-io.c
parent64f26f745084872b916cd1bef6054e21b15c5784 (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.c3
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