/* client.c: NFS client sharing and management code * * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. * Written by David Howells (dhowells@redhat.com) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */#include<linux/module.h>#include<linux/init.h>#include<linux/sched.h>#include<linux/time.h>#include<linux/kernel.h>#include<linux/mm.h>#include<linux/string.h>#include<linux/stat.h>#include<linux/errno.h>#include<linux/unistd.h>#include<linux/sunrpc/clnt.h>#include<linux/sunrpc/stats.h>#include<linux/sunrpc/metrics.h>#include<linux/sunrpc/xprtsock.h>#include<linux/sunrpc/xprtrdma.h>#include<linux/nfs_fs.h>#include<linux/nfs_mount.h>#include<linux/nfs4_mount.h>#include<linux/lockd/bind.h>#include<linux/seq_file.h>#include<linux/mount.h>#include<linux/nfs_idmap.h>#include<linux/vfs.h>#include<linux/inet.h>#include<linux/in6.h>#include<linux/slab.h>#include<linux/idr.h>#include<net/ipv6.h>#include<linux/nfs_xdr.h>#include<linux/sunrpc/bc_xprt.h>#include<linux/nsproxy.h>#include<linux/pid_namespace.h>#include"nfs4_fs.h"#include"callback.h"#include"delegation.h"#include"iostat.h"#include"internal.h"#include"fscache.h"#include"pnfs.h"#include"nfs.h"#include"netns.h"#define NFSDBG_FACILITY NFSDBG_CLIENTstaticDECLARE_WAIT_QUEUE_HEAD(nfs_client_active_wq);staticDEFINE_SPINLOCK(nfs_version_lock);staticDEFINE_MUTEX(nfs_version_mutex);staticLIST_HEAD(nfs_versions);/* * RPC cruft for NFS */staticconststructrpc_version*nfs_version[5]={[2]=NULL,[3]