aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-05-09 11:52:25 -0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:03 -0400
commit188de649c51f03df3f8a601aea0110a3870815c2 (patch)
tree737a1c92ee19182807c89ee170f07e68e6296834 /fs
parent323da79c9f096ed4da04e5ea00f766f75b28aeaa (diff)
Btrfs: Don't do btree balance_dirty_pages on old kernels, it stalls forever
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/disk-io.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 9d5424ad01a3..c3083165b172 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -1655,6 +1655,11 @@ void btrfs_throttle(struct btrfs_root *root)
1655 1655
1656void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr) 1656void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr)
1657{ 1657{
1658 /*
1659 * looks as though older kernels can get into trouble with
1660 * this code, they end up stuck in balance_dirty_pages forever
1661 */
1662#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
1658 struct extent_io_tree *tree; 1663 struct extent_io_tree *tree;
1659 u64 num_dirty; 1664 u64 num_dirty;
1660 u64 start = 0; 1665 u64 start = 0;
@@ -1670,6 +1675,9 @@ void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr)
1670 balance_dirty_pages_ratelimited_nr( 1675 balance_dirty_pages_ratelimited_nr(
1671 root->fs_info->btree_inode->i_mapping, 1); 1676 root->fs_info->btree_inode->i_mapping, 1);
1672 } 1677 }
1678#else
1679 return;
1680#endif
1673} 1681}
1674 1682
1675void btrfs_set_buffer_defrag(struct extent_buffer *buf) 1683void btrfs_set_buffer_defrag(struct extent_buffer *buf)