summaryrefslogtreecommitdiff
path: root/fs/gfs2/trans.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2019-09-06 11:02:38 +0100
committerAndreas Gruenbacher <agruenba@redhat.com>2019-09-06 22:54:23 +0200
commitb473bc2dcd5ad7c487f252d9d2b74ace70308b1f (patch)
treeb8c5b584423feb174c308cce5c51544cd95004b8 /fs/gfs2/trans.c
parentad26967b9afa7faee22c3b79370cb5d9ab553493 (diff)
gfs2: Improve mmap write vs. truncate consistency
On filesystems with a block size smaller than PAGE_SIZE, page_mkwrite is called for each memory-mapped page before that page can be written to. When such a memory-mapped file is truncated down to size x which is not a multiple of the page size and then back to a larger size, the page straddling size x can end up with a partial block mapping. In that case, make sure to mark that page read-only so that page_mkwrite will be called before the page can be written to the next time. (There is no point in marking the page straddling size x read-only when truncating down as writing to memory beyond the end of the file will result in SIGBUS instead of growing the file.) Fixes xfstests generic/029, generic/030 on filesystems with a block size smaller than PAGE_SIZE. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2/trans.c')
0 files changed, 0 insertions, 0 deletions