diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-04 21:39:31 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-04 21:39:31 -0500 |
| commit | c2cc87ca9561ddfe744d446789cc10f507e87db9 (patch) | |
| tree | d505fc0110eb1a3d8750ba2f67648c131f0d9aca /include/linux/fs.h | |
| parent | ce1eeb95fc4eb25109c00bea3e83a87eeff6b07d (diff) | |
| parent | 7015faa7df829876a0f931cd18aa6d7c24a1b581 (diff) | |
Merge branch 'master'
Diffstat (limited to 'include/linux/fs.h')
| -rw-r--r-- | include/linux/fs.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index f83d997c5582..6d6226732c93 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -574,7 +574,14 @@ struct file_ra_state { | |||
| 574 | #define RA_FLAG_INCACHE 0x02 /* file is already in cache */ | 574 | #define RA_FLAG_INCACHE 0x02 /* file is already in cache */ |
| 575 | 575 | ||
| 576 | struct file { | 576 | struct file { |
| 577 | struct list_head f_list; | 577 | /* |
| 578 | * fu_list becomes invalid after file_free is called and queued via | ||
| 579 | * fu_rcuhead for RCU freeing | ||
| 580 | */ | ||
| 581 | union { | ||
| 582 | struct list_head fu_list; | ||
| 583 | struct rcu_head fu_rcuhead; | ||
| 584 | } f_u; | ||
| 578 | struct dentry *f_dentry; | 585 | struct dentry *f_dentry; |
| 579 | struct vfsmount *f_vfsmnt; | 586 | struct vfsmount *f_vfsmnt; |
| 580 | struct file_operations *f_op; | 587 | struct file_operations *f_op; |
| @@ -598,7 +605,6 @@ struct file { | |||
| 598 | spinlock_t f_ep_lock; | 605 | spinlock_t f_ep_lock; |
| 599 | #endif /* #ifdef CONFIG_EPOLL */ | 606 | #endif /* #ifdef CONFIG_EPOLL */ |
| 600 | struct address_space *f_mapping; | 607 | struct address_space *f_mapping; |
| 601 | struct rcu_head f_rcuhead; | ||
| 602 | }; | 608 | }; |
| 603 | extern spinlock_t files_lock; | 609 | extern spinlock_t files_lock; |
| 604 | #define file_list_lock() spin_lock(&files_lock); | 610 | #define file_list_lock() spin_lock(&files_lock); |
