]> git.baikalelectronics.ru Git - kernel.git/commit
nfs: disallow duplicate pages in pgio page vectors
authorWeston Andros Adamson <dros@primarydata.com>
Thu, 14 Aug 2014 21:39:32 +0000 (17:39 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 22 Aug 2014 22:04:44 +0000 (18:04 -0400)
commit35d5c35e653b707a0c791faf6c651b6ccc207e79
tree9326421cb1b32538ae194287eb0614faf7f50089
parent6851da55785337af43852d1c718172b7216e5133
nfs: disallow duplicate pages in pgio page vectors

Adjacent requests that share the same page are allowed, but should only
use one entry in the page vector. This avoids overruning the page
vector - it is sized based on how many bytes there are, not by
request count.

This fixes issues that manifest as "Redzone overwritten" bugs (the
vector overrun) and hangs waiting on page read / write, as it waits on
the same page more than once.

This also adds bounds checking to the page vector with a graceful failure
(WARN_ON_ONCE and pgio error returned to application).

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