diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 13:25:45 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 13:25:45 -0800 | 
| commit | cc7889ff5ee7a1c1a2b5073c53db5ad9b76f14e2 (patch) | |
| tree | 647e11872abe7c20c0145de9adbb60f15085dad0 /fs/nfs/client.c | |
| parent | b13d3c6e8ab6ac53e8c1858a9c837cb6ba3bbef0 (diff) | |
| parent | 3fa04ecd72780da31ba8b329e148179bc24a9c7d (diff) | |
Merge branch 'nfs-for-2.6.34' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
* 'nfs-for-2.6.34' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (44 commits)
  NFS: Remove requirement for inode->i_mutex from nfs_invalidate_mapping
  NFS: Clean up nfs_sync_mapping
  NFS: Simplify nfs_wb_page()
  NFS: Replace __nfs_write_mapping with sync_inode()
  NFS: Simplify nfs_wb_page_cancel()
  NFS: Ensure inode is always marked I_DIRTY_DATASYNC, if it has unstable pages
  NFS: Run COMMIT as an asynchronous RPC call when wbc->for_background is set
  NFS: Reduce the number of unnecessary COMMIT calls
  NFS: Add a count of the number of unstable writes carried by an inode
  NFS: Cleanup - move nfs_write_inode() into fs/nfs/write.c
  nfs41 fix NFS4ERR_CLID_INUSE for exchange id
  NFS: Fix an allocation-under-spinlock bug
  SUNRPC: Handle EINVAL error returns from the TCP connect operation
  NFSv4.1: Various fixes to the sequence flag error handling
  nfs4: renewd renew operations should take/put a client reference
  nfs41: renewd sequence operations should take/put client reference
  nfs: prevent backlogging of renewd requests
  nfs: kill renewd before clearing client minor version
  NFS: Make close(2) asynchronous when closing NFS O_DIRECT files
  NFS: Improve NFS iostat byte count accuracy for writes
  ...
Diffstat (limited to 'fs/nfs/client.c')
| -rw-r--r-- | fs/nfs/client.c | 48 | 
1 files changed, 24 insertions, 24 deletions
| diff --git a/fs/nfs/client.c b/fs/nfs/client.c index ee77713ce68b..2274f1737336 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c @@ -164,30 +164,7 @@ error_0:  	return ERR_PTR(err);  } -static void nfs4_shutdown_client(struct nfs_client *clp) -{ -#ifdef CONFIG_NFS_V4 -	if (__test_and_clear_bit(NFS_CS_RENEWD, &clp->cl_res_state)) -		nfs4_kill_renewd(clp); -	BUG_ON(!RB_EMPTY_ROOT(&clp->cl_state_owners)); -	if (__test_and_clear_bit(NFS_CS_IDMAP, &clp->cl_res_state)) -		nfs_idmap_delete(clp); - -	rpc_destroy_wait_queue(&clp->cl_rpcwaitq); -#endif -} - -/* - * Destroy the NFS4 callback service - */ -static void nfs4_destroy_callback(struct nfs_client *clp) -{  #ifdef CONFIG_NFS_V4 -	if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state)) -		nfs_callback_down(clp->cl_minorversion); -#endif /* CONFIG_NFS_V4 */ -} -  /*   * Clears/puts all minor version specific parts from an nfs_client struct   * reverting it to minorversion 0. @@ -202,9 +179,33 @@ static void nfs4_clear_client_minor_version(struct nfs_client *clp)  	clp->cl_call_sync = _nfs4_call_sync;  #endif /* CONFIG_NFS_V4_1 */ +} +/* + * Destroy the NFS4 callback service + */ +static void nfs4_destroy_callback(struct nfs_client *clp) +{ +	if (__test_and_clear_bit(NFS_CS_CALLBACK, &clp->cl_res_state)) +		nfs_callback_down(clp->cl_minorversion); +} + +static void nfs4_shutdown_client(struct nfs_client *clp) +{ +	if (__test_and_clear_bit(NFS_CS_RENEWD, &clp->cl_res_state)) +		nfs4_kill_renewd(clp); +	nfs4_clear_client_minor_version(clp);  	nfs4_destroy_callback(clp); +	if (__test_and_clear_bit(NFS_CS_IDMAP, &clp->cl_res_state)) +		nfs_idmap_delete(clp); + +	rpc_destroy_wait_queue(&clp->cl_rpcwaitq);  } +#else +static void nfs4_shutdown_client(struct nfs_client *clp) +{ +} +#endif /* CONFIG_NFS_V4 */  /*   * Destroy a shared client record @@ -213,7 +214,6 @@ static void nfs_free_client(struct nfs_client *clp)  {  	dprintk("--> nfs_free_client(%u)\n", clp->rpc_ops->version); -	nfs4_clear_client_minor_version(clp);  	nfs4_shutdown_client(clp);  	nfs_fscache_release_client_cookie(clp); | 
