summaryrefslogtreecommitdiffstats
path: root/kernel/include/linux/fdtable.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include/linux/fdtable.h')
-rw-r--r--kernel/include/linux/fdtable.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/include/linux/fdtable.h b/kernel/include/linux/fdtable.h
index 230f87bdf..5295535b6 100644
--- a/kernel/include/linux/fdtable.h
+++ b/kernel/include/linux/fdtable.h
@@ -26,6 +26,7 @@ struct fdtable {
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;
};
@@ -47,6 +48,9 @@ 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;
/*
@@ -56,6 +60,7 @@ struct files_struct {
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];
};
@@ -83,8 +88,8 @@ static inline struct file *__fcheck_files(struct files_struct *files, unsigned i
static inline struct file *fcheck_files(struct files_struct *files, unsigned int fd)
{
- rcu_lockdep_assert(rcu_read_lock_held() ||
- lockdep_is_held(&files->file_lock),
+ RCU_LOCKDEP_WARN(!rcu_read_lock_held() &&
+ !lockdep_is_held(&files->file_lock),
"suspicious rcu_dereference_check() usage");
return __fcheck_files(files, fd);
}