asking for persistent session from a server

This commit is contained in:
Olga Kornievskaia 2011-05-23 16:35:38 -04:00
parent 9f9401d6c8
commit cb54018555
3 changed files with 14 additions and 1 deletions

View file

@ -305,7 +305,9 @@ enum nfs_ftype4 {
NFS_FTYPE_MASK = 0xF NFS_FTYPE_MASK = 0xF
}; };
#define CREATE_SESSION4_FLAG_PERSIST 0x00000001
#define CREATE_SESSION4_FLAG_CONN_BACK_CHAN 0x00000002 #define CREATE_SESSION4_FLAG_CONN_BACK_CHAN 0x00000002
#define CREATE_SESSION4_FLAG_CONN_RDMA 0x00000004
/* ACLS aclsupport attribute values */ /* ACLS aclsupport attribute values */
#define ACL4_SUPPORT_ALLOW_ACL 0x00000001 #define ACL4_SUPPORT_ALLOW_ACL 0x00000001

View file

@ -149,9 +149,19 @@ int nfs41_create_session(nfs41_client *clnt, nfs41_session *session, bool_t try_
goto out; goto out;
} else clnt->seq_id++; } else clnt->seq_id++;
if (reply.csr_flags != req.csa_flags) if (reply.csr_flags != req.csa_flags) {
eprintf("WARNING: requested session flags %x received %x\n", eprintf("WARNING: requested session flags %x received %x\n",
req.csa_flags, reply.csr_flags); req.csa_flags, reply.csr_flags);
if ((session->flags & CREATE_SESSION4_FLAG_CONN_BACK_CHAN) &&
!(reply.csr_flags & CREATE_SESSION4_FLAG_CONN_BACK_CHAN))
eprintf("WARNING: we asked to use this session for callbacks but "
"server refused\n");
if ((session->flags & CREATE_SESSION4_FLAG_PERSIST) &&
!(reply.csr_flags & CREATE_SESSION4_FLAG_PERSIST))
eprintf("WARNING: we asked for persistent session but "
"server refused\n");
session->flags = reply.csr_flags;
}
else else
dprintf(1, "session flags %x\n", reply.csr_flags); dprintf(1, "session flags %x\n", reply.csr_flags);

View file

@ -291,6 +291,7 @@ int nfs41_session_create(
EXCHGID4_FLAG_USE_NON_PNFS)) EXCHGID4_FLAG_USE_NON_PNFS))
#endif #endif
session->flags |= CREATE_SESSION4_FLAG_CONN_BACK_CHAN; session->flags |= CREATE_SESSION4_FLAG_CONN_BACK_CHAN;
session->flags |= CREATE_SESSION4_FLAG_PERSIST;
ReleaseSRWLockShared(&client->exid_lock); ReleaseSRWLockShared(&client->exid_lock);
status = nfs41_create_session(client, session, TRUE); status = nfs41_create_session(client, session, TRUE);