session: simplify slot table error handling
due to the slot table's use of CRITICAL_SECTION and CONDITION_VARIABLE, the slot table no longer returns errors for following functions: nfs41_session_bump_seq() nfs41_session_free_slot() nfs41_session_get_slot() nfs41_session_sequence() Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
94fc1d946c
commit
1905abd027
6 changed files with 48 additions and 132 deletions
|
|
@ -120,9 +120,7 @@ static int lookup_rpc(
|
|||
compound_init(&compound, argops, resops, "lookup");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &args->sequence, &res->sequence);
|
||||
status = nfs41_session_sequence(&args->sequence, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&args->sequence, session, 0);
|
||||
|
||||
if (dir == &res->root) {
|
||||
compound_add_op(&compound, OP_PUTROOTFH, NULL, &res->putfh);
|
||||
|
|
|
|||
|
|
@ -1301,9 +1301,7 @@ static int rpc_array_putfh(
|
|||
compound_init(&compound, argops, resops, "array_putfh");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
for (i = 0; i < count; i++){
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args[i], &putfh_res[i]);
|
||||
|
|
|
|||
|
|
@ -345,22 +345,22 @@ int nfs41_session_set_lease(
|
|||
void nfs41_session_free(
|
||||
IN nfs41_session *session);
|
||||
|
||||
int nfs41_session_bump_seq(
|
||||
void nfs41_session_bump_seq(
|
||||
IN nfs41_session *session,
|
||||
IN uint32_t slotid);
|
||||
|
||||
int nfs41_session_free_slot(
|
||||
void nfs41_session_free_slot(
|
||||
IN nfs41_session *session,
|
||||
IN uint32_t slotid);
|
||||
|
||||
int nfs41_session_get_slot(
|
||||
void nfs41_session_get_slot(
|
||||
IN nfs41_session *session,
|
||||
OUT uint32_t *slot,
|
||||
OUT uint32_t *seq,
|
||||
OUT uint32_t *highest);
|
||||
|
||||
struct __nfs41_sequence_args;
|
||||
int nfs41_session_sequence(
|
||||
void nfs41_session_sequence(
|
||||
struct __nfs41_sequence_args *args,
|
||||
nfs41_session *session,
|
||||
bool_t cachethis);
|
||||
|
|
|
|||
|
|
@ -159,10 +159,10 @@ retry:
|
|||
(nfs41_sequence_res *)compound->res.resarray[0].res;
|
||||
if (seq->sr_status == NFS4_OK) {
|
||||
// returned slotid must be the same we sent
|
||||
status = NFS4ERR_IO;
|
||||
if (seq->sr_resok4.sr_slotid != args->sa_slotid) {
|
||||
eprintf("[session] sr_slotid=%d != sa_slotid=%d\n",
|
||||
seq->sr_resok4.sr_slotid, args->sa_slotid);
|
||||
status = NFS4ERR_IO;
|
||||
goto out_free_slot;
|
||||
}
|
||||
// returned sessionid must be the same we sent
|
||||
|
|
@ -173,14 +173,13 @@ retry:
|
|||
seq->sr_resok4.sr_sessionid, NFS4_SESSIONID_SIZE);
|
||||
print_hexbuf(1, (unsigned char *)"sa_sessionid",
|
||||
args->sa_sessionid, NFS4_SESSIONID_SIZE);
|
||||
status = NFS4ERR_IO;
|
||||
goto out_free_slot;
|
||||
}
|
||||
if (seq->sr_resok4.sr_status_flags)
|
||||
print_sr_status_flags(1, seq->sr_resok4.sr_status_flags);
|
||||
|
||||
status = nfs41_session_bump_seq(session, args->sa_slotid);
|
||||
if (status)
|
||||
goto out_free_slot;
|
||||
nfs41_session_bump_seq(session, args->sa_slotid);
|
||||
|
||||
/* check sequence status flags for state revocation */
|
||||
if (try_recovery && seq->sr_resok4.sr_status_flags)
|
||||
|
|
@ -444,11 +443,8 @@ out:
|
|||
return status;
|
||||
|
||||
do_retry:
|
||||
if (compound->res.resarray[0].op == OP_SEQUENCE) {
|
||||
status = nfs41_session_get_slot(session, &args->sa_slotid,
|
||||
if (compound->res.resarray[0].op == OP_SEQUENCE)
|
||||
nfs41_session_get_slot(session, &args->sa_slotid,
|
||||
&args->sa_sequenceid, &args->sa_highest_slotid);
|
||||
if (status)
|
||||
goto out;
|
||||
}
|
||||
goto retry;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -279,9 +279,7 @@ enum nfsstat4 nfs41_reclaim_complete(
|
|||
compound_init(&compound, argops, resops, "reclaim_complete");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_RECLAIM_COMPLETE, NULL, &reclaim_res);
|
||||
|
||||
|
|
@ -434,9 +432,7 @@ int nfs41_open(
|
|||
compound_init(&compound, argops, resops, "open");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 1);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 1);
|
||||
|
||||
if (current_fh_is_dir) {
|
||||
/* CURRENT_FH: directory */
|
||||
|
|
@ -563,9 +559,7 @@ int nfs41_create(
|
|||
compound_init(&compound, argops, resops, "create");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 1);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 1);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = parent;
|
||||
|
|
@ -655,9 +649,7 @@ int nfs41_close(
|
|||
compound_init(&compound, argops, resops, "close");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 1);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 1);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -723,9 +715,7 @@ int nfs41_write(
|
|||
stateid->stateid.seqid == 0 ? "ds write" : "write");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -806,9 +796,7 @@ int nfs41_read(
|
|||
stateid->stateid.seqid == 0 ? "ds read" : "read");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -870,9 +858,7 @@ int nfs41_commit(
|
|||
do_getattr ? "commit" : "ds commit");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 1);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 1);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -940,9 +926,7 @@ int nfs41_lock(
|
|||
compound_init(&compound, argops, resops, "lock");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1000,9 +984,7 @@ int nfs41_unlock(
|
|||
compound_init(&compound, argops, resops, "unlock");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1048,9 +1030,7 @@ int nfs41_readdir(
|
|||
compound_init(&compound, argops, resops, "readdir");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1100,9 +1080,7 @@ int nfs41_getattr(
|
|||
compound_init(&compound, argops, resops, "getattr");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
if (file) {
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
|
|
@ -1158,9 +1136,7 @@ int nfs41_superblock_getattr(
|
|||
compound_init(&compound, argops, resops, "getfsattr");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1227,9 +1203,7 @@ int nfs41_remove(
|
|||
compound_init(&compound, argops, resops, "remove");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 1);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 1);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = parent;
|
||||
|
|
@ -1301,9 +1275,7 @@ int nfs41_rename(
|
|||
compound_init(&compound, argops, resops, "rename");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 1);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 1);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &src_putfh_args, &src_putfh_res);
|
||||
src_putfh_args.file = src_dir;
|
||||
|
|
@ -1399,9 +1371,7 @@ int nfs41_setattr(
|
|||
compound_init(&compound, argops, resops, "setattr");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1467,9 +1437,7 @@ int nfs41_link(
|
|||
compound_init(&compound, argops, resops, "link");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 1);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 1);
|
||||
|
||||
/* PUTFH(src) */
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args[0], &putfh_res[0]);
|
||||
|
|
@ -1560,9 +1528,7 @@ int nfs41_readlink(
|
|||
compound_init(&compound, argops, resops, "readlink");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1606,9 +1572,7 @@ int nfs41_access(
|
|||
compound_init(&compound, argops, resops, "access");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1645,9 +1609,7 @@ int nfs41_send_sequence(
|
|||
compound_init(&compound, argops, resops, "sequence");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
status = compound_encode_send_decode(session, &compound, TRUE);
|
||||
if (status)
|
||||
|
|
@ -1681,9 +1643,7 @@ enum nfsstat4 nfs41_want_delegation(
|
|||
compound_init(&compound, argops, resops, "want_delegation");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1717,9 +1677,7 @@ int nfs41_delegpurge(
|
|||
compound_init(&compound, argops, resops, "delegpurge");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_DELEGPURGE, NULL, &dp_res);
|
||||
|
||||
|
|
@ -1752,9 +1710,7 @@ int nfs41_delegreturn(
|
|||
compound_init(&compound, argops, resops, "delegreturn");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -1802,9 +1758,7 @@ enum nfsstat4 nfs41_fs_locations(
|
|||
compound_init(&compound, argops, resops, "fs_locations");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = parent;
|
||||
|
|
@ -1848,9 +1802,7 @@ int nfs41_secinfo(
|
|||
compound_init(&compound, argops, resops, "secinfo");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
if (file == NULL)
|
||||
compound_add_op(&compound, OP_PUTROOTFH, NULL, &putfh_res);
|
||||
|
|
@ -1892,9 +1844,7 @@ int nfs41_secinfo_noname(
|
|||
compound_init(&compound, argops, resops, "secinfo_no_name");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
if (file == NULL)
|
||||
compound_add_op(&compound, OP_PUTROOTFH, NULL, &putfh_res);
|
||||
|
|
@ -1933,9 +1883,7 @@ enum nfsstat4 nfs41_free_stateid(
|
|||
compound_init(&compound, argops, resops, "free_stateid");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_FREE_STATEID, &freestateid_args, &freestateid_res);
|
||||
freestateid_args.stateid = stateid;
|
||||
|
|
@ -1967,9 +1915,7 @@ enum nfsstat4 nfs41_test_stateid(
|
|||
compound_init(&compound, argops, resops, "test_stateid");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_TEST_STATEID, &teststateid_args, &teststateid_res);
|
||||
teststateid_args.stateids = stateid_array;
|
||||
|
|
@ -2012,9 +1958,7 @@ enum nfsstat4 pnfs_rpc_layoutget(
|
|||
compound_init(&compound, argops, resops, "layoutget");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -2081,9 +2025,7 @@ enum nfsstat4 pnfs_rpc_layoutcommit(
|
|||
compound_init(&compound, argops, resops, "layoutcommit");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -2140,9 +2082,7 @@ enum nfsstat4 pnfs_rpc_layoutreturn(
|
|||
compound_init(&compound, argops, resops, "layoutreturn");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
@ -2183,9 +2123,7 @@ enum nfsstat4 pnfs_rpc_getdeviceinfo(
|
|||
compound_init(&compound, argops, resops, "get_deviceinfo");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_GETDEVICEINFO,
|
||||
&getdeviceinfo_args, &getdeviceinfo_res);
|
||||
|
|
@ -2225,9 +2163,7 @@ enum nfsstat4 nfs41_rpc_openattr(
|
|||
compound_init(&compound, argops, resops, "openattr");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
nfs41_session_sequence(&sequence_args, session, 0);
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
|
|
|
|||
|
|
@ -54,12 +54,11 @@ static void init_slot_table(nfs41_slot_table *table)
|
|||
LeaveCriticalSection(&table->lock);
|
||||
}
|
||||
|
||||
int nfs41_session_bump_seq(
|
||||
void nfs41_session_bump_seq(
|
||||
IN nfs41_session *session,
|
||||
IN uint32_t slotid)
|
||||
{
|
||||
nfs41_slot_table *table = &session->table;
|
||||
int status = NO_ERROR;
|
||||
|
||||
AcquireSRWLockShared(&session->client->session_lock);
|
||||
EnterCriticalSection(&table->lock);
|
||||
|
|
@ -69,15 +68,13 @@ int nfs41_session_bump_seq(
|
|||
|
||||
LeaveCriticalSection(&table->lock);
|
||||
ReleaseSRWLockShared(&session->client->session_lock);
|
||||
return status;
|
||||
}
|
||||
|
||||
int nfs41_session_free_slot(
|
||||
void nfs41_session_free_slot(
|
||||
IN nfs41_session *session,
|
||||
IN uint32_t slotid)
|
||||
{
|
||||
nfs41_slot_table *table = &session->table;
|
||||
int status = NO_ERROR;
|
||||
|
||||
AcquireSRWLockShared(&session->client->session_lock);
|
||||
EnterCriticalSection(&table->lock);
|
||||
|
|
@ -101,10 +98,9 @@ int nfs41_session_free_slot(
|
|||
|
||||
LeaveCriticalSection(&table->lock);
|
||||
ReleaseSRWLockShared(&session->client->session_lock);
|
||||
return status;
|
||||
}
|
||||
|
||||
int nfs41_session_get_slot(
|
||||
void nfs41_session_get_slot(
|
||||
IN nfs41_session *session,
|
||||
OUT uint32_t *slot,
|
||||
OUT uint32_t *seqid,
|
||||
|
|
@ -112,7 +108,6 @@ int nfs41_session_get_slot(
|
|||
{
|
||||
nfs41_slot_table *table = &session->table;
|
||||
uint32_t i;
|
||||
int status = NO_ERROR;
|
||||
|
||||
AcquireSRWLockShared(&session->client->session_lock);
|
||||
EnterCriticalSection(&table->lock);
|
||||
|
|
@ -140,24 +135,17 @@ int nfs41_session_get_slot(
|
|||
|
||||
dprintf(2, "session %p: using slot#=%d with seq#=%d highest=%d\n",
|
||||
session, *slot, *seqid, *highest);
|
||||
return status;
|
||||
}
|
||||
|
||||
int nfs41_session_sequence(
|
||||
void nfs41_session_sequence(
|
||||
nfs41_sequence_args *args,
|
||||
nfs41_session *session,
|
||||
bool_t cachethis)
|
||||
{
|
||||
uint32_t status = NO_ERROR;
|
||||
|
||||
status = nfs41_session_get_slot(session, &args->sa_slotid,
|
||||
nfs41_session_get_slot(session, &args->sa_slotid,
|
||||
&args->sa_sequenceid, &args->sa_highest_slotid);
|
||||
if (status)
|
||||
goto out;
|
||||
args->sa_sessionid = session->session_id;
|
||||
args->sa_cachethis = cachethis;
|
||||
out:
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue