diff options
author | Mi Jinlong <mijinlong@cn.fujitsu.com> | 2010-11-11 05:03:40 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2010-11-19 18:35:12 -0500 |
commit | 1205065764f2eda3216ebe213143f69891ee3460 (patch) | |
tree | 55337dfc281fa65ea014cd9567cb8aa75ef74f18 /fs/nfsd/nfs4state.c | |
parent | ced6dfe9fc7128995c6d60627938944b430d82c8 (diff) |
NFS4.1: Fix bug server don't reply the right fore_channel to client at create_session
At the latest kernel(2.6.37-rc1), server just initialize the forechannel
at init_forechannel_attrs, but don't reflect it to reply.
After initialize the session success, we should copy the forechannel info
to nfsd4_create_session struct.
Reviewed-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r-- | fs/nfsd/nfs4state.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 5d0ee0f0cb0e..afa7525a86be 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -1562,6 +1562,8 @@ nfsd4_create_session(struct svc_rqst *rqstp, | |||
1562 | status = nfs_ok; | 1562 | status = nfs_ok; |
1563 | memcpy(cr_ses->sessionid.data, new->se_sessionid.data, | 1563 | memcpy(cr_ses->sessionid.data, new->se_sessionid.data, |
1564 | NFS4_MAX_SESSIONID_LEN); | 1564 | NFS4_MAX_SESSIONID_LEN); |
1565 | memcpy(&cr_ses->fore_channel, &new->se_fchannel, | ||
1566 | sizeof(struct nfsd4_channel_attrs)); | ||
1565 | cs_slot->sl_seqid++; | 1567 | cs_slot->sl_seqid++; |
1566 | cr_ses->seqid = cs_slot->sl_seqid; | 1568 | cr_ses->seqid = cs_slot->sl_seqid; |
1567 | 1569 | ||