diff options
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 1a74b5018699..994834474590 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -2864,6 +2864,15 @@ int btrfs_defrag_file(struct file *file) { | |||
2864 | goto out_unlock; | 2864 | goto out_unlock; |
2865 | } | 2865 | } |
2866 | } | 2866 | } |
2867 | |||
2868 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18) | ||
2869 | ClearPageDirty(page); | ||
2870 | #else | ||
2871 | cancel_dirty_page(page, PAGE_CACHE_SIZE); | ||
2872 | #endif | ||
2873 | wait_on_page_writeback(page); | ||
2874 | set_page_extent_mapped(page); | ||
2875 | |||
2867 | page_start = (u64)page->index << PAGE_CACHE_SHIFT; | 2876 | page_start = (u64)page->index << PAGE_CACHE_SHIFT; |
2868 | page_end = page_start + PAGE_CACHE_SIZE - 1; | 2877 | page_end = page_start + PAGE_CACHE_SIZE - 1; |
2869 | 2878 | ||
@@ -3105,6 +3114,8 @@ long btrfs_ioctl(struct file *file, unsigned int | |||
3105 | return btrfs_ioctl_resize(root, (void __user *)arg); | 3114 | return btrfs_ioctl_resize(root, (void __user *)arg); |
3106 | case BTRFS_IOC_ADD_DEV: | 3115 | case BTRFS_IOC_ADD_DEV: |
3107 | return btrfs_ioctl_add_dev(root, (void __user *)arg); | 3116 | return btrfs_ioctl_add_dev(root, (void __user *)arg); |
3117 | case BTRFS_IOC_BALANCE: | ||
3118 | return btrfs_balance(root->fs_info->dev_root); | ||
3108 | } | 3119 | } |
3109 | 3120 | ||
3110 | return -ENOTTY; | 3121 | return -ENOTTY; |