• Weston Andros Adamson's avatar
    NFSv4.1: LAYOUTGET EDELAY loops timeout to the MDS · 30005121
    Weston Andros Adamson authored
    The client will currently try LAYOUTGETs forever if a server is returning
    NFS4ERR_LAYOUTTRYLATER or NFS4ERR_RECALLCONFLICT - even if the client no
    longer needs the layout (ie process killed, unmounted).
    
    This patch uses the DS timeout value (module parameter 'dataserver_timeo'
    via rpc layer) to set an upper limit of how long the client tries LATOUTGETs
    in this situation.  Once the timeout is reached, IO is redirected to the MDS.
    
    This also changes how the client checks if a layout is on the clp list
    to avoid a double list_add.
    Signed-off-by: default avatarWeston Andros Adamson <dros@netapp.com>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    30005121
pnfs.c 49.3 KB