• Chuck Lever's avatar
    SUNRPC: xdr_stream_subsegment() must handle non-zero page_bases · f49b68dd
    Chuck Lever authored
    xdr_stream_subsegment() was introduced in commit c1346a12
    ("NFSD: Replace the internals of the READ_BUF() macro").
    
    There are two call sites for xdr_stream_subsegment(). One is
    nfsd4_decode_write(), and the other is nfsd4_decode_setxattr().
    Currently neither of these call sites calls this API when
    xdr_buf::page_base is a non-zero value.
    
    However, I'm about to add a case where page_base will sometimes not
    be zero when nfsd4_decode_write() invokes this API. Replace the
    logic in xdr_stream_subsegment() that advances to the next data item
    in the xdr_stream with something more generic in order to handle
    this new use case.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    f49b68dd
xdr.c 55 KB