summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/ops_address.c
diff options
context:
space:
mode:
authorSteven Whitehouse2006-05-02 18:09:42 +0200
committerSteven Whitehouse2006-05-02 18:09:42 +0200
commitd2d7b8a2a756fb520792ca3db3abdeed9214ae5b (patch)
tree467e9e1ef0f4ba29f8cdba4731792533272c6af5 /fs/gfs2/ops_address.c
parent[GFS2] Remove some unused code (diff)
downloadkernel-qcow2-linux-d2d7b8a2a756fb520792ca3db3abdeed9214ae5b.tar.gz
kernel-qcow2-linux-d2d7b8a2a756fb520792ca3db3abdeed9214ae5b.tar.xz
kernel-qcow2-linux-d2d7b8a2a756fb520792ca3db3abdeed9214ae5b.zip
[GFS2] Fix bug in writepage()
As pointed out by Wendy Cheng, the logic in GFS2's writepage() function wasn't quite right with respect to invalidating pages when a file has been truncated. This patch fixes that. CC: Wendy Cheng <wcheng@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/ops_address.c')
-rw-r--r--fs/gfs2/ops_address.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/ops_address.c b/fs/gfs2/ops_address.c
index 005c2522a879..afcc12a00a3c 100644
--- a/fs/gfs2/ops_address.c
+++ b/fs/gfs2/ops_address.c
@@ -126,7 +126,7 @@ static int gfs2_writepage(struct page *page, struct writeback_control *wbc)
/* Is the page fully outside i_size? (truncate in progress) */
offset = i_size & (PAGE_CACHE_SIZE-1);
- if (page->index >= end_index+1 || !offset) {
+ if (page->index > end_index || (page->index == end_index && !offset)) {
page->mapping->a_ops->invalidatepage(page, 0);
unlock_page(page);
return 0; /* don't care */