]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitee83d75469f8873fb0f88b0ab8db160fe78b1217
treed8bc5a59d8115984e0dee48a0551230fc2be7ec0
parentb5852b50d70fc383d7295fc56dffb8d311057ab8
NFS: Fix missing pg_cleanup after nfs_pageio_cond_complete()

Commit d13b63f1976b6cdb7a2c2eeac175bdf226d4ecf9 ("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: d13b63f1976b ("nfs: add mirroring support to pgio layer")
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pagelist.c