diff options
Diffstat (limited to 'fs/btrfs/file.c')
| -rw-r--r-- | fs/btrfs/file.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index c78f184ee5c..8915f2dc1bc 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
| @@ -338,6 +338,13 @@ static int noinline dirty_and_release_pages(struct btrfs_trans_handle *trans, | |||
| 338 | btrfs_drop_extent_cache(inode, start_pos, aligned_end - 1); | 338 | btrfs_drop_extent_cache(inode, start_pos, aligned_end - 1); |
| 339 | BUG_ON(err); | 339 | BUG_ON(err); |
| 340 | mutex_unlock(&BTRFS_I(inode)->extent_mutex); | 340 | mutex_unlock(&BTRFS_I(inode)->extent_mutex); |
| 341 | |||
| 342 | /* | ||
| 343 | * an ugly way to do all the prop accounting around | ||
| 344 | * the page bits and mapping tags | ||
| 345 | */ | ||
| 346 | set_page_writeback(pages[0]); | ||
| 347 | end_page_writeback(pages[0]); | ||
| 341 | did_inline = 1; | 348 | did_inline = 1; |
| 342 | } | 349 | } |
| 343 | if (end_pos > isize) { | 350 | if (end_pos > isize) { |
| @@ -833,11 +840,7 @@ again: | |||
| 833 | start_pos, last_pos - 1, GFP_NOFS); | 840 | start_pos, last_pos - 1, GFP_NOFS); |
| 834 | } | 841 | } |
| 835 | for (i = 0; i < num_pages; i++) { | 842 | for (i = 0; i < num_pages; i++) { |
| 836 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18) | 843 | clear_page_dirty_for_io(pages[i]); |
| 837 | ClearPageDirty(pages[i]); | ||
| 838 | #else | ||
| 839 | cancel_dirty_page(pages[i], PAGE_CACHE_SIZE); | ||
| 840 | #endif | ||
| 841 | set_page_extent_mapped(pages[i]); | 844 | set_page_extent_mapped(pages[i]); |
| 842 | WARN_ON(!PageLocked(pages[i])); | 845 | WARN_ON(!PageLocked(pages[i])); |
| 843 | } | 846 | } |
