From: Mark Fasheh Date: Fri, 17 Aug 2007 00:16:04 +0000 (-0700) Subject: ocfs2: Fix bad source start calculation during kernel writes X-Git-Tag: v2.6.22.6~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1db5759e2d29c90d99659e132d4a137e20460061;p=thirdparty%2Fkernel%2Fstable.git ocfs2: Fix bad source start calculation during kernel writes [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 Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index ac6c96431bbcb..e0cd75068264d 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -1353,7 +1353,7 @@ static struct page * ocfs2_get_write_source(struct ocfs2_buffered_write_priv *bp 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;