diff options
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/nfs4_fs.h | 2 | ||||
-rw-r--r-- | fs/nfs/nfs4proc.c | 3 | ||||
-rw-r--r-- | fs/nfs/nfs4state.c | 9 |
3 files changed, 11 insertions, 3 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index a5dbe62130f1..f7307304320a 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -212,7 +212,7 @@ struct vfsmount *nfs4_submount(struct nfs_server *, struct dentry *, | |||
212 | extern int nfs4_proc_setclientid(struct nfs_client *, u32, unsigned short, struct rpc_cred *, struct nfs4_setclientid_res *); | 212 | extern int nfs4_proc_setclientid(struct nfs_client *, u32, unsigned short, struct rpc_cred *, struct nfs4_setclientid_res *); |
213 | extern int nfs4_proc_setclientid_confirm(struct nfs_client *, struct nfs4_setclientid_res *arg, struct rpc_cred *); | 213 | extern int nfs4_proc_setclientid_confirm(struct nfs_client *, struct nfs4_setclientid_res *arg, struct rpc_cred *); |
214 | extern int nfs4_proc_get_rootfh(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); | 214 | extern int nfs4_proc_get_rootfh(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); |
215 | extern int nfs4_proc_bind_conn_to_session(struct nfs_client *); | 215 | extern int nfs4_proc_bind_conn_to_session(struct nfs_client *, struct rpc_cred *cred); |
216 | extern int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred); | 216 | extern int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred); |
217 | extern int nfs4_init_clientid(struct nfs_client *, struct rpc_cred *); | 217 | extern int nfs4_init_clientid(struct nfs_client *, struct rpc_cred *); |
218 | extern int nfs41_init_clientid(struct nfs_client *, struct rpc_cred *); | 218 | extern int nfs41_init_clientid(struct nfs_client *, struct rpc_cred *); |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 8fa3a36df185..3fdff0cd558d 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -5105,7 +5105,7 @@ nfs41_same_server_scope(struct nfs41_server_scope *a, | |||
5105 | * The 4.1 client currently uses the same TCP connection for the | 5105 | * The 4.1 client currently uses the same TCP connection for the |
5106 | * fore and backchannel. | 5106 | * fore and backchannel. |
5107 | */ | 5107 | */ |
5108 | int nfs4_proc_bind_conn_to_session(struct nfs_client *clp) | 5108 | int nfs4_proc_bind_conn_to_session(struct nfs_client *clp, struct rpc_cred *cred) |
5109 | { | 5109 | { |
5110 | int status; | 5110 | int status; |
5111 | struct nfs41_bind_conn_to_session_res res; | 5111 | struct nfs41_bind_conn_to_session_res res; |
@@ -5114,6 +5114,7 @@ int nfs4_proc_bind_conn_to_session(struct nfs_client *clp) | |||
5114 | &nfs4_procedures[NFSPROC4_CLNT_BIND_CONN_TO_SESSION], | 5114 | &nfs4_procedures[NFSPROC4_CLNT_BIND_CONN_TO_SESSION], |
5115 | .rpc_argp = clp, | 5115 | .rpc_argp = clp, |
5116 | .rpc_resp = &res, | 5116 | .rpc_resp = &res, |
5117 | .rpc_cred = cred, | ||
5117 | }; | 5118 | }; |
5118 | 5119 | ||
5119 | dprintk("--> %s\n", __func__); | 5120 | dprintk("--> %s\n", __func__); |
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 15878404aa8c..7dbca666283a 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -1779,7 +1779,14 @@ static int nfs4_recall_slot(struct nfs_client *clp) | |||
1779 | 1779 | ||
1780 | static int nfs4_bind_conn_to_session(struct nfs_client *clp) | 1780 | static int nfs4_bind_conn_to_session(struct nfs_client *clp) |
1781 | { | 1781 | { |
1782 | return nfs4_proc_bind_conn_to_session(clp); | 1782 | struct rpc_cred *cred; |
1783 | int ret; | ||
1784 | |||
1785 | cred = nfs4_get_exchange_id_cred(clp); | ||
1786 | ret = nfs4_proc_bind_conn_to_session(clp, cred); | ||
1787 | if (cred) | ||
1788 | put_rpccred(cred); | ||
1789 | return ret; | ||
1783 | } | 1790 | } |
1784 | #else /* CONFIG_NFS_V4_1 */ | 1791 | #else /* CONFIG_NFS_V4_1 */ |
1785 | static int nfs4_reset_session(struct nfs_client *clp) { return 0; } | 1792 | static int nfs4_reset_session(struct nfs_client *clp) { return 0; } |