]> git.baikalelectronics.ru Git - kernel.git/commit
nfs: can_coalesce_requests must enforce contiguity
authorWeston Andros Adamson <dros@primarydata.com>
Thu, 14 Aug 2014 21:39:33 +0000 (17:39 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 22 Aug 2014 22:04:44 +0000 (18:04 -0400)
commit67ff25fd61c7098a9ed7ef86d570ef6abce330e4
treed4bdfbcac7d82bcef4f16f2e7e661320a5ebc6dc
parent35d5c35e653b707a0c791faf6c651b6ccc207e79
nfs: can_coalesce_requests must enforce contiguity

Commit c725a143c853ce524f32458032dbabc0616419f2
"nfs: allow coalescing of subpage requests" got rid of the requirement
that requests cover whole pages, but it made some incorrect assumptions.

It turns out that callers of this interface can map adjacent requests
(by file position as seen by req_offset + req->wb_bytes) to different pages,
even when they could share a page. An example is the direct I/O interface -
iov_iter_get_pages_alloc may return one segment with a partial page filled
and the next segment (which is adjacent in the file position) starts with a
new page.

Reported-by: Toralf Förster <toralf.foerster@gmx.de>
Signed-off-by: Weston Andros Adamson <dros@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pagelist.c