STRUCT FUSE_REQ(9)
π struct fuse_req(9) β a request to the client, bestie
okay so this is the Kernel API Manual page for struct fuse_req, and honestly? it's giving "backstage pass to the whole FUSE operation" β¨ stay with me, we're gonna read the whole struct together, no skimming π«Ά
πΈ NAME πΈ
struct fuse_req β literally a request to the client. that's it, that's the vibe π
β¨ SYNOPSIS β¨
here's the whole thing, character for character, do NOT touch:
struct fuse_req {
struct list_head list;
struct list_head intr_entry;
struct fuse_args *args;
refcount_t count;
unsigned long flags;
struct {
struct fuse_in_header h;
} in;
struct {
struct fuse_out_header h;
} out;
wait_queue_head_t waitq;
#if IS_ENABLED(CONFIG_VIRTIO_FS);
void *argbuf;
#endif;
struct fuse_chan *chan;
#ifdef CONFIG_FUSE_IO_URING;
void *ring_entry;
void *ring_queue;
#endif;
unsigned long create_time;
};
look at those #if guards bestie, they're conditional and iconic π
π¦ Members π¦
let's go field by field, i got you:
listβ this one can be on either the pending processing lists or the io lists infuse_conn. so like, it's a social butterfly, it gets around πintr_entryβ entry on the interrupts list. short king, does one job, does it well πargsβ the input/output arguments. the actual payload, the main character energy π₯countβ refcount. classic. keep it balanced or perish πflagsβ request flags, updated withtest/set/clear_bit. bit twiddling, we love to see it β¨inβ the request input headerin.hβ the request input header (yes it's listed twice, no i'm not gonna pretend it isn't, we keep every detail in this house π«Ά)outβ the request output headerout.hβ the request output header (same energy, same double listing π)waitqβ used to wake up the task waiting for completion of request. the "hey bestie it's done" queue πargbufβ virtio-fs's physically contiguous buffer for in and out args. only shows up whenCONFIG_VIRTIO_FSis enabled, very exclusive πchanβ thefuse_chanthis request belongs to. found family fr fr πΈcreate_timeβ when (in jiffies) the request was created. a timestamp, a birth certificate, a moment π
π Description π
okay so .waitq.lock protects the following fields:
FR_ABORTEDFR_LOCKED(may also be modified underfpq->lock, tested under both)
β οΈ no cap, read that parenthetical twice:FR_LOCKEDmay also be modified underfpq->lockand it's tested under both. locking rules are not a vibe to freestyle, bestie π
π SEE ALSO π
Kernel file ./fs/fuse/fuse_dev_i.h β plus these glorious neighbours:
enum fuse_req_flag(9)struct fuse_iqueue_ops(9)struct fuse_dev(9)
and that's the whole page, you ate it π
β¨ so anyways, this came out of ./fs/fuse dated October 2026, on the struct fuse_req(9) page β mwah, go read the source, ily, bye ππ¦π
π¦ 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