pcl_process_nonpayloads(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… pcl_process_nonpayloads(9) β€” Kernel API Manual, but make it make sense 🫢

okay so bestie, we're in the Kernel API Manual today and the star of the show is pcl_process_nonpayloads. sit down, hydrate, and let's get into it ✨


🌸 NAME 🌸

pcl_process_nonpayloads β€” the little function that goes and processes the non-payload regions inside @xdr πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

int pcl_process_nonpayloads (const struct svc_rdma_pcl *pcl , const
struct xdr_buf *xdr , int (*actor)(const struct xdr_buf *, void *) ,
void *data );

like, four things in, one int out. classic. πŸ‘‘


πŸ¦‹ ARGUMENTS πŸ¦‹

  • pcl β€” the chunk list you're gonna process. it's a const struct svc_rdma_pcl *, so hands off, no editing bestie πŸ™ˆ
  • xdr β€” the xdr_buf that's getting processed. this is the main character of the whole operation fr fr ✨
  • actor β€” the function pointer that gets invoked on each non-payload region. signature is int (*actor)(const struct xdr_buf *, void *), so it takes the buffer and your data, and hands you back an int 🫢
  • data β€” the arguments that get passed along to actor. it's a void *, so it can literally be anything you need it to be πŸ’…

πŸ”₯ DESCRIPTION πŸ”₯

okay so the whole vibe here: this mechanism has to ignore not only the result payloads that were already sent via RDMA Write, but also the XDR padding for those payloads that the upper layer has added. both. not one. both. periodt πŸ’€

Assumptions (and yes they're assumptions, protect them at all costs): the xdr->len and ch_position fields are aligned to 4-byte multiples. that's the deal, that's the rule, no cap 🌈


⭐ RETURN ⭐

On success you get zero. iconic. but also watch out for:

  • -EMSGSIZE β€” this is when the XDR buffer overflows 😭
  • or, alternatively, the return value of actor β€” because whatever your actor function says goes, and it gets passed straight up 🫑

πŸ‘‘ SEE ALSO πŸ‘‘

go read all of them, i'll wait πŸ’œ


and that's the whole page bestie, no notes, ate and left no crumbs πŸ’…βœ¨ this little number lives under ./net/sunrpc/xprtrdma, dated October 2026, and it's filed as pcl_process_nonpayloads(9) β€” mwah, see you in the next manpage πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from