rpc_mkpipe_dentry(9)
π rpc_mkpipe_dentry(9) β Kernel API Manual, but make it a vibe β¨
Okay bestie, so this one lives in the Kernel API Manual and it's called rpc_mkpipe_dentry β and honestly? It's giving "matchmaker for kernel and userspace." π
πΈ NAME πΈ
rpc_mkpipe_dentry β make an rpc_pipefs file for kernel<->userspace communication
Like, it literally builds the little doorway where the kernel and userspace can pass notes to each other. Obsessed. π
β¨ SYNOPSIS β¨
int rpc_mkpipe_dentry (struct dentry *parent , const char *name , void
*private , struct rpc_pipe *pipe );
That's the whole signature, no cap. Keep it exactly like that, bestie. π«Ά
π¦ ARGUMENTS π¦
parentβ the dentry of the directory where we're making this new "pipe". Basically, where the new file is gonna live.nameβ the name of the pipe. Yes, you get to name it. Main character energy. πprivateβ private data you wanna associate with the pipe, for the caller's own use. It's yours, bestie β the kernel's just holding it for you.pipeβ anrpc_pipecontaining the input parameters. This is the blueprint, the whole setup.
π DESCRIPTION π
So here's the tea, fr fr.
Data becomes available for userspace to read through calls to rpc_queue_upcall. When userspace actually does the read, that results in calls to ops->upcall β and that gets called with the file pointer, the message, and the userspace buffer to copy to. It's giving a whole relay race. πββοΈπ¨
Writes can show up at any time, and ngl they do not have to be responses to upcalls. They don't need to be anything's reply β they're independent like that. They just turn into calls to msg->downcall. Periodt.
And the private argument you pass in right here? It'll be available to all these methods from the file pointer, via RPC_I(file_inode(file))->private. So it follows you everywhere. Very loyal. π
π§ SEE ALSO π§
Kernel file ./net/sunrpc/rpc_pipe.c, plus the whole friend group:
rpc_queue_upcall(9)rpc_unlink(9)rpc_init_pipe_dir_head(9)rpc_init_pipe_dir_object(9)rpc_add_pipe_dir_object(9)rpc_remove_pipe_dir_object(9)rpc_find_or_alloc_pipe_dir_object(9)rpc_create_client_dir(9)rpc_remove_client_dir(9)rpc_gssd_dummy_populate(9)
That's the whole page, bestie β go slay some pipes! π
This one comes from ./net/sunrpc, dated October 2026, and it's filed under rpc_mkpipe_dentry(9). π
β¨ No cap, that's the sign-off. π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms