fs/fuse/fuse_dev_i.h
Source file repositories/reference/linux-study-clean/fs/fuse/fuse_dev_i.h
File Facts
- System
- Linux kernel
- Corpus path
fs/fuse/fuse_dev_i.h- Extension
.h- Size
- 10690 bytes
- Lines
- 423
- Domain
- Core OS
- Bucket
- VFS And Filesystem Core
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/fuse.hlinux/types.hlinux/refcount.hlinux/wait.hlinux/workqueue.hlinux/fs.h
Detected Declarations
struct fuse_argstruct fuse_argsstruct fuse_pqueuestruct fuse_iqueuestruct fuse_reqstruct fuse_forget_linkstruct fuse_iqueue_opsstruct fuse_iqueuestruct fuse_chanstruct fuse_pqueuestruct fuse_devstruct fuse_copy_stateenum fuse_req_flagfunction fuse_dev_put
Annotated Snippet
struct fuse_req {
/**
* @list: This can be on either pending processing or io lists in
* fuse_conn
*/
struct list_head list;
/** @intr_entry: Entry on the interrupts list */
struct list_head intr_entry;
/** @args: Input/output arguments */
struct fuse_args *args;
/** @count: refcount */
refcount_t count;
/** @flags: Request flags, updated with test/set/clear_bit() */
unsigned long flags;
/** @in: The request input header */
struct {
/** @in.h: The request input header */
struct fuse_in_header h;
} in;
/** @out: The request output header */
struct {
/** @out.h: The request output header */
struct fuse_out_header h;
} out;
/** @waitq: Used to wake up the task waiting for completion of request */
wait_queue_head_t waitq;
#if IS_ENABLED(CONFIG_VIRTIO_FS)
/**
* @argbuf: virtio-fs's physically contiguous buffer for in and out
* args
*/
void *argbuf;
#endif
/** @chan: fuse_chan this request belongs to */
struct fuse_chan *chan;
#ifdef CONFIG_FUSE_IO_URING
void *ring_entry;
void *ring_queue;
#endif
/** @create_time: When (in jiffies) the request was created */
unsigned long create_time;
};
/* One forget request */
struct fuse_forget_link {
struct fuse_forget_one forget_one;
struct fuse_forget_link *next;
};
/**
* struct fuse_iqueue_ops - Input queue callbacks
*
* Input queue signalling is device-specific. For example, the /dev/fuse file
* uses fiq->waitq and fasync to wake processes that are waiting on queue
* readiness. These callbacks allow other device types to respond to input
* queue activity.
*/
struct fuse_iqueue_ops {
/**
* @send_forget: Send one forget
*/
void (*send_forget)(struct fuse_iqueue *fiq, struct fuse_forget_link *link);
/**
* @send_interrupt: Send interrupt for request
*/
void (*send_interrupt)(struct fuse_iqueue *fiq, struct fuse_req *req);
/**
* @send_req: Send one request
*/
void (*send_req)(struct fuse_iqueue *fiq, struct fuse_req *req);
/**
* @release: Clean up when fuse_iqueue is destroyed
*/
void (*release)(struct fuse_iqueue *fiq);
};
struct fuse_iqueue {
Annotation
- Immediate include surface: `linux/fuse.h`, `linux/types.h`, `linux/refcount.h`, `linux/wait.h`, `linux/workqueue.h`, `linux/fs.h`.
- Detected declarations: `struct fuse_arg`, `struct fuse_args`, `struct fuse_pqueue`, `struct fuse_iqueue`, `struct fuse_req`, `struct fuse_forget_link`, `struct fuse_iqueue_ops`, `struct fuse_iqueue`, `struct fuse_chan`, `struct fuse_pqueue`.
- Atlas domain: Core OS / VFS And Filesystem Core.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.