diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-23 16:58:40 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-23 16:58:40 -0700 | 
| commit | 9f261e011340bcd22c1dd48b465153bd78caa8c8 (patch) | |
| tree | b1c266ea746a0e8591e6af781aef22854e652ff9 /fs/nfs/delegation.c | |
| parent | a4c12d6c5dde48c69464baf7c703e425ee511433 (diff) | |
| parent | 026ed5c9185dcc4b2df92e98c3d61a01cea19cbf (diff) | |
Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
* git://git.linux-nfs.org/pub/linux/nfs-2.6: (74 commits)
  NFS: unmark NFS direct I/O as experimental
  NFS: add comments clarifying the use of nfs_post_op_update()
  NFSv4: rpc_mkpipe creating socket inodes w/out sk buffers
  NFS: Use SEEK_END instead of hardcoded value
  NFSv4: When mounting with a port=0 argument, substitute port=2049
  NFSv4: Poll more aggressively when handling NFS4ERR_DELAY
  NFSv4: Handle the condition NFS4ERR_FILE_OPEN
  NFSv4: Retry lease recovery if it failed during a synchronous operation.
  NFS: Don't invalidate the symlink we just stuffed into the cache
  NFS: Make read() return an ESTALE if the file has been deleted
  NFSv4: It's perfectly legal for clp to be NULL here....
  NFS: nfs_lookup - don't hash dentry when optimising away the lookup
  SUNRPC: Fix Oops in pmap_getport_done
  SUNRPC: Add refcounting to the struct rpc_xprt
  SUNRPC: Clean up soft task error handling
  SUNRPC: Handle ENETUNREACH, EHOSTUNREACH and EHOSTDOWN socket errors
  SUNRPC: rpc_delay() should not clobber the rpc_task->tk_status
  Fix a referral error Oops
  NFS: NFS_ROOT should use the new rpc_create API
  NFS: Fix up compiler warnings on 64-bit platforms in client.c
  ...
Manually resolved conflict in net/sunrpc/xprtsock.c
Diffstat (limited to 'fs/nfs/delegation.c')
| -rw-r--r-- | fs/nfs/delegation.c | 35 | 
1 files changed, 18 insertions, 17 deletions
| diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index 9540a316c05e..57133678db16 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c @@ -18,6 +18,7 @@  #include "nfs4_fs.h"  #include "delegation.h" +#include "internal.h"  static struct nfs_delegation *nfs_alloc_delegation(void)  { @@ -52,7 +53,7 @@ static int nfs_delegation_claim_locks(struct nfs_open_context *ctx, struct nfs4_  			case -NFS4ERR_EXPIRED:  				/* kill_proc(fl->fl_pid, SIGLOST, 1); */  			case -NFS4ERR_STALE_CLIENTID: -				nfs4_schedule_state_recovery(NFS_SERVER(inode)->nfs4_state); +				nfs4_schedule_state_recovery(NFS_SERVER(inode)->nfs_client);  				goto out_err;  		}  	} @@ -114,7 +115,7 @@ void nfs_inode_reclaim_delegation(struct inode *inode, struct rpc_cred *cred, st   */  int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct nfs_openres *res)  { -	struct nfs4_client *clp = NFS_SERVER(inode)->nfs4_state; +	struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;  	struct nfs_inode *nfsi = NFS_I(inode);  	struct nfs_delegation *delegation;  	int status = 0; @@ -145,7 +146,7 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct  					sizeof(delegation->stateid)) != 0 ||  				delegation->type != nfsi->delegation->type) {  			printk("%s: server %u.%u.%u.%u, handed out a duplicate delegation!\n", -					__FUNCTION__, NIPQUAD(clp->cl_addr)); +					__FUNCTION__, NIPQUAD(clp->cl_addr.sin_addr));  			status = -EIO;  		}  	} @@ -176,7 +177,7 @@ static void nfs_msync_inode(struct inode *inode)   */  int __nfs_inode_return_delegation(struct inode *inode)  { -	struct nfs4_client *clp = NFS_SERVER(inode)->nfs4_state; +	struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;  	struct nfs_inode *nfsi = NFS_I(inode);  	struct nfs_delegation *delegation;  	int res = 0; @@ -208,7 +209,7 @@ int __nfs_inode_return_delegation(struct inode *inode)   */  void nfs_return_all_delegations(struct super_block *sb)  { -	struct nfs4_client *clp = NFS_SB(sb)->nfs4_state; +	struct nfs_client *clp = NFS_SB(sb)->nfs_client;  	struct nfs_delegation *delegation;  	struct inode *inode; @@ -232,7 +233,7 @@ restart:  int nfs_do_expire_all_delegations(void *ptr)  { -	struct nfs4_client *clp = ptr; +	struct nfs_client *clp = ptr;  	struct nfs_delegation *delegation;  	struct inode *inode; @@ -254,11 +255,11 @@ restart:  	}  out:  	spin_unlock(&clp->cl_lock); -	nfs4_put_client(clp); +	nfs_put_client(clp);  	module_put_and_exit(0);  } -void nfs_expire_all_delegations(struct nfs4_client *clp) +void nfs_expire_all_delegations(struct nfs_client *clp)  {  	struct task_struct *task; @@ -266,17 +267,17 @@ void nfs_expire_all_delegations(struct nfs4_client *clp)  	atomic_inc(&clp->cl_count);  	task = kthread_run(nfs_do_expire_all_delegations, clp,  			"%u.%u.%u.%u-delegreturn", -			NIPQUAD(clp->cl_addr)); +			NIPQUAD(clp->cl_addr.sin_addr));  	if (!IS_ERR(task))  		return; -	nfs4_put_client(clp); +	nfs_put_client(clp);  	module_put(THIS_MODULE);  }  /*   * Return all delegations following an NFS4ERR_CB_PATH_DOWN error.   */ -void nfs_handle_cb_pathdown(struct nfs4_client *clp) +void nfs_handle_cb_pathdown(struct nfs_client *clp)  {  	struct nfs_delegation *delegation;  	struct inode *inode; @@ -299,7 +300,7 @@ restart:  struct recall_threadargs {  	struct inode *inode; -	struct nfs4_client *clp; +	struct nfs_client *clp;  	const nfs4_stateid *stateid;  	struct completion started; @@ -310,7 +311,7 @@ static int recall_thread(void *data)  {  	struct recall_threadargs *args = (struct recall_threadargs *)data;  	struct inode *inode = igrab(args->inode); -	struct nfs4_client *clp = NFS_SERVER(inode)->nfs4_state; +	struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;  	struct nfs_inode *nfsi = NFS_I(inode);  	struct nfs_delegation *delegation; @@ -371,7 +372,7 @@ out_module_put:  /*   * Retrieve the inode associated with a delegation   */ -struct inode *nfs_delegation_find_inode(struct nfs4_client *clp, const struct nfs_fh *fhandle) +struct inode *nfs_delegation_find_inode(struct nfs_client *clp, const struct nfs_fh *fhandle)  {  	struct nfs_delegation *delegation;  	struct inode *res = NULL; @@ -389,7 +390,7 @@ struct inode *nfs_delegation_find_inode(struct nfs4_client *clp, const struct nf  /*   * Mark all delegations as needing to be reclaimed   */ -void nfs_delegation_mark_reclaim(struct nfs4_client *clp) +void nfs_delegation_mark_reclaim(struct nfs_client *clp)  {  	struct nfs_delegation *delegation;  	spin_lock(&clp->cl_lock); @@ -401,7 +402,7 @@ void nfs_delegation_mark_reclaim(struct nfs4_client *clp)  /*   * Reap all unclaimed delegations after reboot recovery is done   */ -void nfs_delegation_reap_unclaimed(struct nfs4_client *clp) +void nfs_delegation_reap_unclaimed(struct nfs_client *clp)  {  	struct nfs_delegation *delegation, *n;  	LIST_HEAD(head); @@ -423,7 +424,7 @@ void nfs_delegation_reap_unclaimed(struct nfs4_client *clp)  int nfs4_copy_delegation_stateid(nfs4_stateid *dst, struct inode *inode)  { -	struct nfs4_client *clp = NFS_SERVER(inode)->nfs4_state; +	struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;  	struct nfs_inode *nfsi = NFS_I(inode);  	struct nfs_delegation *delegation;  	int res = 0; | 
