-
Notifications
You must be signed in to change notification settings - Fork 0
files_struct fdtable struct file
Donald Buczek edited this page Jun 9, 2020
·
3 revisions
https://elixir.bootlin.com/linux/v5.7/source/include/linux/fdtable.h#L48
struct files_struct {
/*
* read mostly part
*/
atomic_t count;
bool resize_in_progress;
wait_queue_head_t resize_wait;
struct fdtable __rcu *fdt;
struct fdtable fdtab;
/*
* written part on a separate cache line in SMP
*/
spinlock_t file_lock ____cacheline_aligned_in_smp;
unsigned int next_fd;
unsigned long close_on_exec_init[1];
unsigned long open_fds_init[1];
unsigned long full_fds_bits_init[1];
struct file __rcu * fd_array[NR_OPEN_DEFAULT];
};
https://elixir.bootlin.com/linux/v5.7/source/include/linux/fdtable.h#L26
struct fdtable {
unsigned int max_fds;
struct file __rcu **fd; /* current fd array */
unsigned long *close_on_exec;
unsigned long *open_fds;
unsigned long *full_fds_bits;
struct rcu_head rcu;
};