• Dai Ngo's avatar
    NFSv4.2: Fix 5 seconds delay when doing inter server copy · fe8eb820
    Dai Ngo authored
    Since commit b4868b44 ("NFSv4: Wait for stateid updates after
    CLOSE/OPEN_DOWNGRADE"), every inter server copy operation suffers 5
    seconds delay regardless of the size of the copy. The delay is from
    nfs_set_open_stateid_locked when the check by nfs_stateid_is_sequential
    fails because the seqid in both nfs4_state and nfs4_stateid are 0.
    
    Fix __nfs42_ssc_open to delay setting of NFS_OPEN_STATE in nfs4_state,
    until after the call to update_open_stateid, to indicate this is the 1st
    open. This fix is part of a 2 patches, the other patch is the fix in the
    source server to return the stateid for COPY_NOTIFY request with seqid 1
    instead of 0.
    
    Fixes: ce0887ac ("NFSD add nfs4 inter ssc to nfsd4_copy")
    Signed-off-by: default avatarDai Ngo <dai.ngo@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    fe8eb820
nfs4file.c 11.1 KB