]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
NFS: Fix uninitialized rpc_wait_queue
authorBenjamin Coddington <bcodding@redhat.com>
Fri, 22 Sep 2017 11:57:10 +0000 (07:57 -0400)
committerSeth Forshee <seth.forshee@canonical.com>
Thu, 19 Oct 2017 14:49:27 +0000 (09:49 -0500)
BugLink: http://bugs.launchpad.net/bugs/1724669
commit 68ebf8fe3bce8c167cf83fbd681c1eb1ed419c6c upstream.

Michael Sterrett reports a NULL pointer dereference on NFSv3 mounts when
CONFIG_NFS_V4 is not set because the NFS UOC rpc_wait_queue has not been
initialized.  Move the initialization of the queue out of the CONFIG_NFS_V4
conditional setion.

Fixes: 7d6ddf88c4db ("NFS: Add an iocounter wait function for async RPC tasks")
Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
fs/nfs/client.c

index efebe6cf4378e32a13d109eebd0b694dd629c2a5..22880ef6d8dd74f6b44d7d755bdb9c8e8de59917 100644 (file)
@@ -218,7 +218,6 @@ static void nfs_cb_idr_remove_locked(struct nfs_client *clp)
 static void pnfs_init_server(struct nfs_server *server)
 {
        rpc_init_wait_queue(&server->roc_rpcwaitq, "pNFS ROC");
-       rpc_init_wait_queue(&server->uoc_rpcwaitq, "NFS UOC");
 }
 
 #else
@@ -888,6 +887,7 @@ struct nfs_server *nfs_alloc_server(void)
        ida_init(&server->openowner_id);
        ida_init(&server->lockowner_id);
        pnfs_init_server(server);
+       rpc_init_wait_queue(&server->uoc_rpcwaitq, "NFS UOC");
 
        return server;
 }