diff options
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index c55d6b7cd5d6..b5b979247863 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -208,6 +208,7 @@ struct inodes_stat_t { | |||
208 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ | 208 | #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ |
209 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ | 209 | #define MS_I_VERSION (1<<23) /* Update inode I_version field */ |
210 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ | 210 | #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ |
211 | #define MS_NOSEC (1<<28) | ||
211 | #define MS_BORN (1<<29) | 212 | #define MS_BORN (1<<29) |
212 | #define MS_ACTIVE (1<<30) | 213 | #define MS_ACTIVE (1<<30) |
213 | #define MS_NOUSER (1<<31) | 214 | #define MS_NOUSER (1<<31) |
@@ -638,6 +639,7 @@ struct address_space { | |||
638 | struct prio_tree_root i_mmap; /* tree of private and shared mappings */ | 639 | struct prio_tree_root i_mmap; /* tree of private and shared mappings */ |
639 | struct list_head i_mmap_nonlinear;/*list VM_NONLINEAR mappings */ | 640 | struct list_head i_mmap_nonlinear;/*list VM_NONLINEAR mappings */ |
640 | struct mutex i_mmap_mutex; /* protect tree, count, list */ | 641 | struct mutex i_mmap_mutex; /* protect tree, count, list */ |
642 | /* Protected by tree_lock together with the radix tree */ | ||
641 | unsigned long nrpages; /* number of total pages */ | 643 | unsigned long nrpages; /* number of total pages */ |
642 | pgoff_t writeback_index;/* writeback starts here */ | 644 | pgoff_t writeback_index;/* writeback starts here */ |
643 | const struct address_space_operations *a_ops; /* methods */ | 645 | const struct address_space_operations *a_ops; /* methods */ |
@@ -743,9 +745,13 @@ struct inode { | |||
743 | 745 | ||
744 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ | 746 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ |
745 | unsigned int i_flags; | 747 | unsigned int i_flags; |
748 | unsigned long i_state; | ||
749 | #ifdef CONFIG_SECURITY | ||
750 | void *i_security; | ||
751 | #endif | ||
746 | struct mutex i_mutex; | 752 | struct mutex i_mutex; |
747 | 753 | ||
748 | unsigned long i_state; | 754 | |
749 | unsigned long dirtied_when; /* jiffies of first dirtying */ | 755 | unsigned long dirtied_when; /* jiffies of first dirtying */ |
750 | 756 | ||
751 | struct hlist_node i_hash; | 757 | struct hlist_node i_hash; |
@@ -797,9 +803,6 @@ struct inode { | |||
797 | atomic_t i_readcount; /* struct files open RO */ | 803 | atomic_t i_readcount; /* struct files open RO */ |
798 | #endif | 804 | #endif |
799 | atomic_t i_writecount; | 805 | atomic_t i_writecount; |
800 | #ifdef CONFIG_SECURITY | ||
801 | void *i_security; | ||
802 | #endif | ||
803 | #ifdef CONFIG_FS_POSIX_ACL | 806 | #ifdef CONFIG_FS_POSIX_ACL |
804 | struct posix_acl *i_acl; | 807 | struct posix_acl *i_acl; |
805 | struct posix_acl *i_default_acl; | 808 | struct posix_acl *i_default_acl; |
@@ -2591,7 +2594,7 @@ static inline int is_sxid(mode_t mode) | |||
2591 | 2594 | ||
2592 | static inline void inode_has_no_xattr(struct inode *inode) | 2595 | static inline void inode_has_no_xattr(struct inode *inode) |
2593 | { | 2596 | { |
2594 | if (!is_sxid(inode->i_mode)) | 2597 | if (!is_sxid(inode->i_mode) && (inode->i_sb->s_flags & MS_NOSEC)) |
2595 | inode->i_flags |= S_NOSEC; | 2598 | inode->i_flags |= S_NOSEC; |
2596 | } | 2599 | } |
2597 | 2600 | ||