From 9c2b9674cd93e1c63817638ea26ceb10595ba20a Mon Sep 17 00:00:00 2001 From: Tao Ma Date: Wed, 14 Jul 2010 11:19:32 +0800 Subject: [PATCH] --- yaml --- r: 201031 b: refs/heads/master c: f5e27b6ddfbafdd9c9c2f06bbf28af12581409bc h: refs/heads/master i: 201029: 65c3fae374b7496b963b0cfbaacc4ddac6fc8751 201027: cc4f2b0f2c6539b38cfea12df726b628c9496ca9 201023: 633499cea790e1e133e2061cba25ae32e68a3260 v: v3 --- [refs] | 2 +- trunk/fs/ocfs2/refcounttree.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 240757a3e637..cf013dc89a19 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e372357ba55ae89307af15cd680467d8f0db4f01 +refs/heads/master: f5e27b6ddfbafdd9c9c2f06bbf28af12581409bc diff --git a/trunk/fs/ocfs2/refcounttree.c b/trunk/fs/ocfs2/refcounttree.c index 32949df10694..3ac5aa733e9c 100644 --- a/trunk/fs/ocfs2/refcounttree.c +++ b/trunk/fs/ocfs2/refcounttree.c @@ -2931,6 +2931,12 @@ static int ocfs2_duplicate_clusters_by_page(handle_t *handle, offset = ((loff_t)cpos) << OCFS2_SB(sb)->s_clustersize_bits; end = offset + (new_len << OCFS2_SB(sb)->s_clustersize_bits); + /* + * We only duplicate pages until we reach the page contains i_size - 1. + * So trim 'end' to i_size. + */ + if (end > i_size_read(context->inode)) + end = i_size_read(context->inode); while (offset < end) { page_index = offset >> PAGE_CACHE_SHIFT;