4.7-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <[email protected]>

commit ca857cc1d4cf17aba4bbb3b95d35454ad96924b3 upstream.

If a pNFS client sets hdr->pgio_done_cb, then we should not overwrite that
in nfs4_proc_read_setup()

Fixes: 75bf47ebf6b5 ("pNFS/flexfile: Fix erroneous fall back to...")
Signed-off-by: Trond Myklebust <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 fs/nfs/nfs4proc.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -4393,7 +4393,8 @@ static void nfs4_proc_read_setup(struct
                                 struct rpc_message *msg)
 {
        hdr->timestamp   = jiffies;
-       hdr->pgio_done_cb = nfs4_read_done_cb;
+       if (!hdr->pgio_done_cb)
+               hdr->pgio_done_cb = nfs4_read_done_cb;
        msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_READ];
        nfs4_init_sequence(&hdr->args.seq_args, &hdr->res.seq_res, 0);
 }


Reply via email to