diff options
Diffstat (limited to 'fs/nfs/nfs3proc.c')
-rw-r--r-- | fs/nfs/nfs3proc.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c index 75c68299358e..2292a0fd2bff 100644 --- a/fs/nfs/nfs3proc.c +++ b/fs/nfs/nfs3proc.c | |||
@@ -142,7 +142,7 @@ nfs3_proc_setattr(struct dentry *dentry, struct nfs_fattr *fattr, | |||
142 | } | 142 | } |
143 | 143 | ||
144 | static int | 144 | static int |
145 | nfs3_proc_lookup(struct rpc_clnt *clnt, struct inode *dir, struct qstr *name, | 145 | nfs3_proc_lookup(struct inode *dir, struct qstr *name, |
146 | struct nfs_fh *fhandle, struct nfs_fattr *fattr) | 146 | struct nfs_fh *fhandle, struct nfs_fattr *fattr) |
147 | { | 147 | { |
148 | struct nfs3_diropargs arg = { | 148 | struct nfs3_diropargs arg = { |
@@ -810,11 +810,13 @@ nfs3_proc_pathconf(struct nfs_server *server, struct nfs_fh *fhandle, | |||
810 | 810 | ||
811 | static int nfs3_read_done(struct rpc_task *task, struct nfs_read_data *data) | 811 | static int nfs3_read_done(struct rpc_task *task, struct nfs_read_data *data) |
812 | { | 812 | { |
813 | if (nfs3_async_handle_jukebox(task, data->inode)) | 813 | struct inode *inode = data->header->inode; |
814 | |||
815 | if (nfs3_async_handle_jukebox(task, inode)) | ||
814 | return -EAGAIN; | 816 | return -EAGAIN; |
815 | 817 | ||
816 | nfs_invalidate_atime(data->inode); | 818 | nfs_invalidate_atime(inode); |
817 | nfs_refresh_inode(data->inode, &data->fattr); | 819 | nfs_refresh_inode(inode, &data->fattr); |
818 | return 0; | 820 | return 0; |
819 | } | 821 | } |
820 | 822 | ||
@@ -830,10 +832,12 @@ static void nfs3_proc_read_rpc_prepare(struct rpc_task *task, struct nfs_read_da | |||
830 | 832 | ||
831 | static int nfs3_write_done(struct rpc_task *task, struct nfs_write_data *data) | 833 | static int nfs3_write_done(struct rpc_task *task, struct nfs_write_data *data) |
832 | { | 834 | { |
833 | if (nfs3_async_handle_jukebox(task, data->inode)) | 835 | struct inode *inode = data->header->inode; |
836 | |||
837 | if (nfs3_async_handle_jukebox(task, inode)) | ||
834 | return -EAGAIN; | 838 | return -EAGAIN; |
835 | if (task->tk_status >= 0) | 839 | if (task->tk_status >= 0) |
836 | nfs_post_op_update_inode_force_wcc(data->inode, data->res.fattr); | 840 | nfs_post_op_update_inode_force_wcc(inode, data->res.fattr); |
837 | return 0; | 841 | return 0; |
838 | } | 842 | } |
839 | 843 | ||
@@ -847,7 +851,12 @@ static void nfs3_proc_write_rpc_prepare(struct rpc_task *task, struct nfs_write_ | |||
847 | rpc_call_start(task); | 851 | rpc_call_start(task); |
848 | } | 852 | } |
849 | 853 | ||
850 | static int nfs3_commit_done(struct rpc_task *task, struct nfs_write_data *data) | 854 | static void nfs3_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) |
855 | { | ||
856 | rpc_call_start(task); | ||
857 | } | ||
858 | |||
859 | static int nfs3_commit_done(struct rpc_task *task, struct nfs_commit_data *data) | ||
851 | { | 860 | { |
852 | if (nfs3_async_handle_jukebox(task, data->inode)) | 861 | if (nfs3_async_handle_jukebox(task, data->inode)) |
853 | return -EAGAIN; | 862 | return -EAGAIN; |
@@ -855,7 +864,7 @@ static int nfs3_commit_done(struct rpc_task *task, struct nfs_write_data *data) | |||
855 | return 0; | 864 | return 0; |
856 | } | 865 | } |
857 | 866 | ||
858 | static void nfs3_proc_commit_setup(struct nfs_write_data *data, struct rpc_message *msg) | 867 | static void nfs3_proc_commit_setup(struct nfs_commit_data *data, struct rpc_message *msg) |
859 | { | 868 | { |
860 | msg->rpc_proc = &nfs3_procedures[NFS3PROC_COMMIT]; | 869 | msg->rpc_proc = &nfs3_procedures[NFS3PROC_COMMIT]; |
861 | } | 870 | } |
@@ -875,6 +884,7 @@ const struct nfs_rpc_ops nfs_v3_clientops = { | |||
875 | .file_inode_ops = &nfs3_file_inode_operations, | 884 | .file_inode_ops = &nfs3_file_inode_operations, |
876 | .file_ops = &nfs_file_operations, | 885 | .file_ops = &nfs_file_operations, |
877 | .getroot = nfs3_proc_get_root, | 886 | .getroot = nfs3_proc_get_root, |
887 | .submount = nfs_submount, | ||
878 | .getattr = nfs3_proc_getattr, | 888 | .getattr = nfs3_proc_getattr, |
879 | .setattr = nfs3_proc_setattr, | 889 | .setattr = nfs3_proc_setattr, |
880 | .lookup = nfs3_proc_lookup, | 890 | .lookup = nfs3_proc_lookup, |
@@ -906,6 +916,7 @@ const struct nfs_rpc_ops nfs_v3_clientops = { | |||
906 | .write_rpc_prepare = nfs3_proc_write_rpc_prepare, | 916 | .write_rpc_prepare = nfs3_proc_write_rpc_prepare, |
907 | .write_done = nfs3_write_done, | 917 | .write_done = nfs3_write_done, |
908 | .commit_setup = nfs3_proc_commit_setup, | 918 | .commit_setup = nfs3_proc_commit_setup, |
919 | .commit_rpc_prepare = nfs3_proc_commit_rpc_prepare, | ||
909 | .commit_done = nfs3_commit_done, | 920 | .commit_done = nfs3_commit_done, |
910 | .lock = nfs3_proc_lock, | 921 | .lock = nfs3_proc_lock, |
911 | .clear_acl_cache = nfs3_forget_cached_acls, | 922 | .clear_acl_cache = nfs3_forget_cached_acls, |