summaryrefslogtreecommitdiff
path: root/fs/ocfs2/aops.c
diff options
context:
space:
mode:
authorJohn Stultz <john.stultz@linaro.org>2011-04-18 13:19:07 -0700
committerJohn Stultz <john.stultz@linaro.org>2011-04-18 13:19:07 -0700
commit775d71e49c65f1f6aa57776ea1da62988fc9a30a (patch)
treece03cae544bacc8dda67422fd66a543dd1ae3c99 /fs/ocfs2/aops.c
parent18e82d2b952ab57fc1c8a69d4fa14e562f2aecf6 (diff)
parentc1a952f48517b5545075d8eb1a5d543099bd2ae1 (diff)
Merge branch 'upstream/linaro.38' into linaro-android.38KNOWN_GOOD
Diffstat (limited to 'fs/ocfs2/aops.c')
-rw-r--r--fs/ocfs2/aops.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 1fbb0e20131..bbba782cce2 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -1026,6 +1026,12 @@ static int ocfs2_prepare_page_for_write(struct inode *inode, u64 *p_blkno,
ocfs2_figure_cluster_boundaries(OCFS2_SB(inode->i_sb), cpos,
&cluster_start, &cluster_end);
+ /* treat the write as new if the a hole/lseek spanned across
+ * the page boundary.
+ */
+ new = new | ((i_size_read(inode) <= page_offset(page)) &&
+ (page_offset(page) <= user_pos));
+
if (page == wc->w_target_page) {
map_from = user_pos & (PAGE_CACHE_SIZE - 1);
map_to = map_from + user_len;