• Chuck Lever's avatar
    svcrdma: rc_position sanity checking · 61edbcb7
    Chuck Lever authored
    An RPC/RDMA client may send large RPC arguments via a read
    list. This is a list of scatter/gather elements which convey
    RPC call arguments too large to fit in a small RDMA SEND.
    
    Each entry in the read list has a "position" field, whose value is
    the byte offset in the XDR stream where the data in that entry is to
    be inserted. Entries which share the same "position" value make up
    the same RPC argument. The receiver inserts entries with the same
    position field value in list order into the XDR stream.
    
    Currently the Linux NFS/RDMA server cannot handle receiving read
    chunks in more than one position, mostly because no current client
    sends read lists with elements in more than one position. As a
    sanity check, ensure that all received chunks have the same
    "rc_position."
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Reviewed-by: default avatarSteve Wise <swise@opengridcomputing.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    61edbcb7
svc_rdma_recvfrom.c 17.3 KB