diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/nfs/nfs3proc.c | 6 | ||||
| -rw-r--r-- | fs/nfs/nfs4proc.c | 11 | ||||
| -rw-r--r-- | fs/nfs/proc.c | 6 | ||||
| -rw-r--r-- | fs/nfs/unlink.c | 23 | 
4 files changed, 24 insertions, 22 deletions
diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c index 7f3f957f677..5242eae6711 100644 --- a/fs/nfs/nfs3proc.c +++ b/fs/nfs/nfs3proc.c @@ -450,6 +450,11 @@ nfs3_proc_rename_setup(struct rpc_message *msg, struct inode *dir)  	msg->rpc_proc = &nfs3_procedures[NFS3PROC_RENAME];  } +static void nfs3_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) +{ +	rpc_call_start(task); +} +  static int  nfs3_proc_rename_done(struct rpc_task *task, struct inode *old_dir,  		      struct inode *new_dir) @@ -883,6 +888,7 @@ const struct nfs_rpc_ops nfs_v3_clientops = {  	.unlink_done	= nfs3_proc_unlink_done,  	.rename		= nfs3_proc_rename,  	.rename_setup	= nfs3_proc_rename_setup, +	.rename_rpc_prepare = nfs3_proc_rename_rpc_prepare,  	.rename_done	= nfs3_proc_rename_done,  	.link		= nfs3_proc_link,  	.symlink	= nfs3_proc_symlink, diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 9c247fa7915..b76dd0efae7 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -2814,6 +2814,16 @@ static void nfs4_proc_rename_setup(struct rpc_message *msg, struct inode *dir)  	nfs41_init_sequence(&arg->seq_args, &res->seq_res, 1);  } +static void nfs4_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) +{ +	if (nfs4_setup_sequence(NFS_SERVER(data->old_dir), +				&data->args.seq_args, +				&data->res.seq_res, +				task)) +		return; +	rpc_call_start(task); +} +  static int nfs4_proc_rename_done(struct rpc_task *task, struct inode *old_dir,  				 struct inode *new_dir)  { @@ -6465,6 +6475,7 @@ const struct nfs_rpc_ops nfs_v4_clientops = {  	.unlink_done	= nfs4_proc_unlink_done,  	.rename		= nfs4_proc_rename,  	.rename_setup	= nfs4_proc_rename_setup, +	.rename_rpc_prepare = nfs4_proc_rename_rpc_prepare,  	.rename_done	= nfs4_proc_rename_done,  	.link		= nfs4_proc_link,  	.symlink	= nfs4_proc_symlink, diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c index 528b9a2fae0..b63b6f4d14f 100644 --- a/fs/nfs/proc.c +++ b/fs/nfs/proc.c @@ -377,6 +377,11 @@ nfs_proc_rename_setup(struct rpc_message *msg, struct inode *dir)  	msg->rpc_proc = &nfs_procedures[NFSPROC_RENAME];  } +static void nfs_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) +{ +	rpc_call_start(task); +} +  static int  nfs_proc_rename_done(struct rpc_task *task, struct inode *old_dir,  		     struct inode *new_dir) @@ -740,6 +745,7 @@ const struct nfs_rpc_ops nfs_v2_clientops = {  	.unlink_done	= nfs_proc_unlink_done,  	.rename		= nfs_proc_rename,  	.rename_setup	= nfs_proc_rename_setup, +	.rename_rpc_prepare = nfs_proc_rename_rpc_prepare,  	.rename_done	= nfs_proc_rename_done,  	.link		= nfs_proc_link,  	.symlink	= nfs_proc_symlink, diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c index 9c5a7980e24..3210a03342f 100644 --- a/fs/nfs/unlink.c +++ b/fs/nfs/unlink.c @@ -323,18 +323,6 @@ nfs_cancel_async_unlink(struct dentry *dentry)  	spin_unlock(&dentry->d_lock);  } -struct nfs_renamedata { -	struct nfs_renameargs	args; -	struct nfs_renameres	res; -	struct rpc_cred		*cred; -	struct inode		*old_dir; -	struct dentry		*old_dentry; -	struct nfs_fattr	old_fattr; -	struct inode		*new_dir; -	struct dentry		*new_dentry; -	struct nfs_fattr	new_fattr; -}; -  /**   * nfs_async_rename_done - Sillyrename post-processing   * @task: rpc_task of the sillyrename @@ -385,25 +373,16 @@ static void nfs_async_rename_release(void *calldata)  	kfree(data);  } -#if defined(CONFIG_NFS_V4_1)  static void nfs_rename_prepare(struct rpc_task *task, void *calldata)  {  	struct nfs_renamedata *data = calldata; -	struct nfs_server *server = NFS_SERVER(data->old_dir); - -	if (nfs4_setup_sequence(server, &data->args.seq_args, -				&data->res.seq_res, task)) -		return; -	rpc_call_start(task); +	NFS_PROTO(data->old_dir)->rename_rpc_prepare(task, data);  } -#endif /* CONFIG_NFS_V4_1 */  static const struct rpc_call_ops nfs_rename_ops = {  	.rpc_call_done = nfs_async_rename_done,  	.rpc_release = nfs_async_rename_release, -#if defined(CONFIG_NFS_V4_1)  	.rpc_call_prepare = nfs_rename_prepare, -#endif /* CONFIG_NFS_V4_1 */  };  /**  |