diff options
Diffstat (limited to 'include/linux/fs.h')
| -rw-r--r-- | include/linux/fs.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index fd93ab7da905..e0b77c5af9a0 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include <linux/config.h> | 9 | #include <linux/config.h> |
| 10 | #include <linux/limits.h> | 10 | #include <linux/limits.h> |
| 11 | #include <linux/ioctl.h> | 11 | #include <linux/ioctl.h> |
| 12 | #include <linux/rcuref.h> | ||
| 12 | 13 | ||
| 13 | /* | 14 | /* |
| 14 | * It's silly to have NR_OPEN bigger than NR_FILE, but you can change | 15 | * It's silly to have NR_OPEN bigger than NR_FILE, but you can change |
| @@ -597,12 +598,13 @@ struct file { | |||
| 597 | spinlock_t f_ep_lock; | 598 | spinlock_t f_ep_lock; |
| 598 | #endif /* #ifdef CONFIG_EPOLL */ | 599 | #endif /* #ifdef CONFIG_EPOLL */ |
| 599 | struct address_space *f_mapping; | 600 | struct address_space *f_mapping; |
| 601 | struct rcu_head f_rcuhead; | ||
| 600 | }; | 602 | }; |
| 601 | extern spinlock_t files_lock; | 603 | extern spinlock_t files_lock; |
| 602 | #define file_list_lock() spin_lock(&files_lock); | 604 | #define file_list_lock() spin_lock(&files_lock); |
| 603 | #define file_list_unlock() spin_unlock(&files_lock); | 605 | #define file_list_unlock() spin_unlock(&files_lock); |
| 604 | 606 | ||
| 605 | #define get_file(x) atomic_inc(&(x)->f_count) | 607 | #define get_file(x) rcuref_inc(&(x)->f_count) |
| 606 | #define file_count(x) atomic_read(&(x)->f_count) | 608 | #define file_count(x) atomic_read(&(x)->f_count) |
| 607 | 609 | ||
| 608 | #define MAX_NON_LFS ((1UL<<31) - 1) | 610 | #define MAX_NON_LFS ((1UL<<31) - 1) |
| @@ -1507,8 +1509,6 @@ extern void do_generic_mapping_read(struct address_space *mapping, | |||
| 1507 | loff_t *, read_descriptor_t *, read_actor_t); | 1509 | loff_t *, read_descriptor_t *, read_actor_t); |
| 1508 | extern void | 1510 | extern void |
| 1509 | file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); | 1511 | file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); |
| 1510 | extern ssize_t generic_file_direct_IO(int rw, struct kiocb *iocb, | ||
| 1511 | const struct iovec *iov, loff_t offset, unsigned long nr_segs); | ||
| 1512 | extern ssize_t generic_file_readv(struct file *filp, const struct iovec *iov, | 1512 | extern ssize_t generic_file_readv(struct file *filp, const struct iovec *iov, |
| 1513 | unsigned long nr_segs, loff_t *ppos); | 1513 | unsigned long nr_segs, loff_t *ppos); |
| 1514 | ssize_t generic_file_writev(struct file *filp, const struct iovec *iov, | 1514 | ssize_t generic_file_writev(struct file *filp, const struct iovec *iov, |
