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 c78f184ee5cc..8915f2dc1bce 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 | } |