NFS: Fix missing pg_cleanup after nfs_pageio_cond_complete()
authorBenjamin Coddington <bcodding@redhat.com>
Fri, 14 Apr 2017 16:29:54 +0000 (12:29 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 20 Apr 2017 17:49:22 +0000 (13:49 -0400)
commit43b7d964ed30dbca5c83c90cb010985b429ec4f9
treed8bc5a59d8115984e0dee48a0551230fc2be7ec0
parent62b2417e84ba0734d3f4f95a17e6f5f0be54d75a
NFS: Fix missing pg_cleanup after nfs_pageio_cond_complete()

Commit a7d42ddb3099727f58366fa006f850a219cce6c8 ("nfs: add mirroring
support to pgio layer") moved pg_cleanup out of the path when there was
non-sequental I/O that needed to be flushed.  The result is that for
layouts that have more than one layout segment per file, the pg_lseg is not
cleared, so we can end up hitting the WARN_ON_ONCE(req_start >= seg_end) in
pnfs_generic_pg_test since the pg_lseg will be pointing to that
previously-flushed layout segment.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Fixes: a7d42ddb3099 ("nfs: add mirroring support to pgio layer")
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pagelist.c