• Rick Macklem's avatar
    nfscl: Make nfscl_getlayout() acquire the correct pNFS layout · 24af0fcd
    Rick Macklem authored
    Without this patch, if a pNFS read layout has already been acquired
    for a file, writes would be redirected to the Metadata Server (MDS),
    because nfscl_getlayout() would not acquire a read/write layout for
    the file.  This happened because there was no "mode" argument to
    nfscl_getlayout() to indicate whether reading or writing was being done.
    Since doing I/O through the Metadata Server is not encouraged for some
    pNFS servers, it is preferable to get a read/write layout for writes
    instead of redirecting the write to the MDS.
    This patch adds a access mode argument to nfscl_getlayout() and
    nfsrpc_getlayout(), so that nfscl_getlayout() knows to acquire a read/write
    layout for writing, even if a read layout has already been acquired.
    This patch only affects NFSv4.1/4.2 client behaviour when pNFS ("pnfs" mount
    option against a server that supports pNFS) is in use.
    This problem was detected during a recent NFSv4 interoperability
    testing event held by the IETF working group.
    MFC after:	2 week