NFSv4.1: Delay callback processing when there are referring triples
If CB_SEQUENCE tells us that the processing of this request depends on the completion of one or more referring triples (see RFC 5661 Section 2.10.6.3), delay the callback processing until after the RPC requests being referred to have completed. If we end up delaying for more than 1/2 second, then fall back to returning NFS4ERR_DELAY in reply to the callback. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
@@ -454,8 +454,8 @@ static bool referring_call_exists(struct nfs_client *clp,
|
||||
((u32 *)&rclist->rcl_sessionid.data)[3],
|
||||
ref->rc_sequenceid, ref->rc_slotid);
|
||||
|
||||
status = nfs4_slot_seqid_in_use(tbl, ref->rc_slotid,
|
||||
ref->rc_sequenceid);
|
||||
status = nfs4_slot_wait_on_seqid(tbl, ref->rc_slotid,
|
||||
ref->rc_sequenceid, HZ >> 1) < 0;
|
||||
if (status)
|
||||
goto out;
|
||||
}
|
||||
|
Reference in New Issue
Block a user