提交 188de649 编写于 作者: C Chris Mason

Btrfs: Don't do btree balance_dirty_pages on old kernels, it stalls forever

Signed-off-by: NChris Mason <chris.mason@oracle.com>
上级 323da79c
...@@ -1655,6 +1655,11 @@ void btrfs_throttle(struct btrfs_root *root) ...@@ -1655,6 +1655,11 @@ void btrfs_throttle(struct btrfs_root *root)
void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr) void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr)
{ {
/*
* looks as though older kernels can get into trouble with
* this code, they end up stuck in balance_dirty_pages forever
*/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
struct extent_io_tree *tree; struct extent_io_tree *tree;
u64 num_dirty; u64 num_dirty;
u64 start = 0; u64 start = 0;
...@@ -1670,6 +1675,9 @@ void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr) ...@@ -1670,6 +1675,9 @@ void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr)
balance_dirty_pages_ratelimited_nr( balance_dirty_pages_ratelimited_nr(
root->fs_info->btree_inode->i_mapping, 1); root->fs_info->btree_inode->i_mapping, 1);
} }
#else
return;
#endif
} }
void btrfs_set_buffer_defrag(struct extent_buffer *buf) void btrfs_set_buffer_defrag(struct extent_buffer *buf)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册