diff options
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r-- | fs/btrfs/extent_io.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index f284d4e5f447..b40ba75f4483 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -2613,10 +2613,16 @@ retry: | |||
2613 | * swizzled back from swapper_space to tmpfs file | 2613 | * swizzled back from swapper_space to tmpfs file |
2614 | * mapping | 2614 | * mapping |
2615 | */ | 2615 | */ |
2616 | if (tree->ops && tree->ops->write_cache_pages_lock_hook) | 2616 | if (tree->ops && |
2617 | tree->ops->write_cache_pages_lock_hook(page); | 2617 | tree->ops->write_cache_pages_lock_hook) { |
2618 | else | 2618 | tree->ops->write_cache_pages_lock_hook(page, |
2619 | lock_page(page); | 2619 | data, flush_fn); |
2620 | } else { | ||
2621 | if (!trylock_page(page)) { | ||
2622 | flush_fn(data); | ||
2623 | lock_page(page); | ||
2624 | } | ||
2625 | } | ||
2620 | 2626 | ||
2621 | if (unlikely(page->mapping != mapping)) { | 2627 | if (unlikely(page->mapping != mapping)) { |
2622 | unlock_page(page); | 2628 | unlock_page(page); |