From d4ac77b159be4bbecd3fba3a993ff3a17edc598d Mon Sep 17 00:00:00 2001 From: Dan Magenheimer Date: Thu, 26 May 2011 10:01:56 -0600 Subject: [PATCH] --- yaml --- r: 251783 b: refs/heads/master c: 90a887c9a2e25bcb1fc658fad59dfbc6fb792734 h: refs/heads/master i: 251781: 9e94d5c98953c2f1a932227a13b45ebab6207bcf 251779: 627c77eebaebef1bbb9718dc7cb2b83b597619c4 251775: bec92d8a63c270b1423d831ad1a3b41fa9086795 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/extent_io.c | 9 +++++++++ trunk/fs/btrfs/super.c | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 112465db29f3..f587a70c2d89 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d71bc6db5e48066bde78a480bb9e3057b3db1a3c +refs/heads/master: 90a887c9a2e25bcb1fc658fad59dfbc6fb792734 diff --git a/trunk/fs/btrfs/extent_io.c b/trunk/fs/btrfs/extent_io.c index ba41da59e31b..0cee46e01081 100644 --- a/trunk/fs/btrfs/extent_io.c +++ b/trunk/fs/btrfs/extent_io.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "extent_io.h" #include "extent_map.h" #include "compat.h" @@ -2015,6 +2016,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); @@ -2148,6 +2156,7 @@ static int __extent_read_full_page(struct extent_io_tree *tree, cur = cur + iosize; page_offset += iosize; } +out: if (!nr) { if (!PageError(page)) SetPageUptodate(page); diff --git a/trunk/fs/btrfs/super.c b/trunk/fs/btrfs/super.c index 0ac712efcdf2..be4ffa12f3ef 100644 --- a/trunk/fs/btrfs/super.c +++ b/trunk/fs/btrfs/super.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "compat.h" #include "ctree.h" #include "disk-io.h" @@ -624,6 +625,7 @@ static int btrfs_fill_super(struct super_block *sb, sb->s_root = root_dentry; save_mount_options(sb, data); + cleancache_init_fs(sb); return 0; fail_close: