GFS2: Fix direct IO write rounding error
authorBob Peterson <rpeterso@redhat.com>
Wed, 27 Jan 2016 21:00:38 +0000 (16:00 -0500)
committerBob Peterson <rpeterso@redhat.com>
Tue, 15 Mar 2016 14:46:28 +0000 (10:46 -0400)
commit2df6f47150b6afbb258ed1d5c9ed78c23df05053
tree5f67da00fb95f46a0f324d49b8714fdb1be83d62
parent67893f12e5374bbcaaffbc6e570acbc2714ea884
GFS2: Fix direct IO write rounding error

The fsx test in xfstests was failing because it was using direct IO
writes which were using a bad calculation. It was using
loff_t lstart = offset & (PAGE_CACHE_SIZE - 1); when it should be
loff_t lstart = offset & ~(PAGE_CACHE_SIZE - 1);
Thus, the write at offset 0x67e00 was calculating lstart to be
0xe00, the address of our corruption. Instead, it should have been
0x67000. This patch fixes the calculation.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Acked-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/aops.c