[patch 01/28] ocfs2: Fix bad source start calculation duringkernel writes

From: Greg KH
Date: Thu Aug 23 2007 - 18:28:13 EST


-stable review patch. If anyone has any objections, please let us know.

------------------

From: Mark Fasheh <mark.fasheh@xxxxxxxxxx>

[PATCH] ocfs2: Fix bad source start calculation during kernel writes

For in-kernel writes ocfs2_get_write_source() should be starting the buffer
at a page boundary as the math in ocfs2_map_and_write_user_data() will pad
it back out to the correct write offset. Instead, we were passing the raw
offset, which caused ocfs2_map_and_write_user_data() start too far into the
buffer, resulting in corruptions from nfs client writes.

Signed-off-by: Mark Fasheh <mark.fasheh@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

---
fs/ocfs2/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1353,7 +1353,7 @@ static struct page * ocfs2_get_write_sou
else
src_page = ERR_PTR(-EFAULT);
} else {
- bp->b_src_buf = buf;
+ bp->b_src_buf = (char *)((unsigned long)buf & PAGE_CACHE_MASK);
}

return src_page;

--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/