• Rick Macklem's avatar
    Add support for ext_pgs mbufs to nfsm_uiombuflist() and nfsm_split(). · cfaafa79
    Rick Macklem authored
    This patch uses a slightly different algorithm for nfsm_uiombuflist() for
    the non-ext_pgs case, where a variable called "mcp" is maintained, pointing to
    the current location that mbuf data can be filled into. This avoids use of
    mtod(mp, char *) + mp->m_len to calculate the location, since this does
    not work for ext_pgs mbufs and I think it makes the algorithm more readable.
    This change should not result in semantic changes for the non-ext_pgs case.
    The patch also deletes come unneeded code.
    
    It also adds support for anonymous page ext_pgs mbufs to nfsm_split().
    
    This is another in the series of commits that add support to the NFS client
    and server for building RPC messages in ext_pgs mbufs with anonymous pages.
    This is useful so that the entire mbuf list does not need to be
    copied before calling sosend() when NFS over TLS is enabled.
    At this time for this case, use of ext_pgs mbufs cannot be enabled, since
    ktls_encrypt() replaces the unencrypted data with encrypted data in place.
    
    Until such time as this can be enabled, there should be no semantic change.
    Also, note that this code is only used by the NFS client for a mirrored pNFS
    server.
    cfaafa79