X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=fs%2Fbtrfs%2Fextent_io.c;h=5bbdb243bb6f7b95b8abd808806970e5d4ec70eb;hb=ff95acb6733d41a8d45feb0e18b96df25e610e78;hp=7b60f621e7612d3abf53a0f4483eedff431db2e5;hpb=75c195a2cac2c3c8366c0b87de2d6814c4f4d638;p=karo-tx-linux.git diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 7b60f621e761..5bbdb243bb6f 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include #include "extent_io.h" #include "extent_map.h" #include "compat.h" @@ -1968,6 +1970,13 @@ static int __extent_read_full_page(struct extent_io_tree *tree, set_page_extent_mapped(page); + if (!PageUptodate(page)) { + if (cleancache_get_page(page) == 0) { + BUG_ON(blocksize != PAGE_SIZE); + goto out; + } + } + end = page_end; while (1) { lock_extent(tree, start, end, GFP_NOFS); @@ -2101,6 +2110,7 @@ static int __extent_read_full_page(struct extent_io_tree *tree, cur = cur + iosize; pg_offset += iosize; } +out: if (!nr) { if (!PageError(page)) SetPageUptodate(page);