diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-05-09 11:52:25 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:04:03 -0400 |
commit | 188de649c51f03df3f8a601aea0110a3870815c2 (patch) | |
tree | 737a1c92ee19182807c89ee170f07e68e6296834 /fs | |
parent | 323da79c9f096ed4da04e5ea00f766f75b28aeaa (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.c | 8 |
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 | ||
1656 | void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr) | 1656 | void 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 | ||
1675 | void btrfs_set_buffer_defrag(struct extent_buffer *buf) | 1683 | void btrfs_set_buffer_defrag(struct extent_buffer *buf) |