diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 12:15:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 12:15:43 -0400 |
commit | 0f6e0e8448a16d8d22119ce91d8dd24b44865b51 (patch) | |
tree | 7c295c02db035fc6a0b867465911a2bc9dc6b1ef /include/linux/fs.h | |
parent | 0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4 (diff) | |
parent | a002951c97ff8da49938c982a4c236bf2fafdc9f (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits)
AppArmor: kill unused macros in lsm.c
AppArmor: cleanup generated files correctly
KEYS: Add an iovec version of KEYCTL_INSTANTIATE
KEYS: Add a new keyctl op to reject a key with a specified error code
KEYS: Add a key type op to permit the key description to be vetted
KEYS: Add an RCU payload dereference macro
AppArmor: Cleanup make file to remove cruft and make it easier to read
SELinux: implement the new sb_remount LSM hook
LSM: Pass -o remount options to the LSM
SELinux: Compute SID for the newly created socket
SELinux: Socket retains creator role and MLS attribute
SELinux: Auto-generate security_is_socket_class
TOMOYO: Fix memory leak upon file open.
Revert "selinux: simplify ioctl checking"
selinux: drop unused packet flow permissions
selinux: Fix packet forwarding checks on postrouting
selinux: Fix wrong checks for selinux_policycap_netpeer
selinux: Fix check for xfrm selinux context algorithm
ima: remove unnecessary call to ima_must_measure
IMA: remove IMA imbalance checking
...
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 13df14e2c42e..2f5a71d6d766 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -801,8 +801,7 @@ struct inode { | |||
801 | #endif | 801 | #endif |
802 | 802 | ||
803 | #ifdef CONFIG_IMA | 803 | #ifdef CONFIG_IMA |
804 | /* protected by i_lock */ | 804 | atomic_t i_readcount; /* struct files open RO */ |
805 | unsigned int i_readcount; /* struct files open RO */ | ||
806 | #endif | 805 | #endif |
807 | atomic_t i_writecount; | 806 | atomic_t i_writecount; |
808 | #ifdef CONFIG_SECURITY | 807 | #ifdef CONFIG_SECURITY |
@@ -2215,6 +2214,26 @@ static inline void allow_write_access(struct file *file) | |||
2215 | if (file) | 2214 | if (file) |
2216 | atomic_inc(&file->f_path.dentry->d_inode->i_writecount); | 2215 | atomic_inc(&file->f_path.dentry->d_inode->i_writecount); |
2217 | } | 2216 | } |
2217 | #ifdef CONFIG_IMA | ||
2218 | static inline void i_readcount_dec(struct inode *inode) | ||
2219 | { | ||
2220 | BUG_ON(!atomic_read(&inode->i_readcount)); | ||
2221 | atomic_dec(&inode->i_readcount); | ||
2222 | } | ||
2223 | static inline void i_readcount_inc(struct inode *inode) | ||
2224 | { | ||
2225 | atomic_inc(&inode->i_readcount); | ||
2226 | } | ||
2227 | #else | ||
2228 | static inline void i_readcount_dec(struct inode *inode) | ||
2229 | { | ||
2230 | return; | ||
2231 | } | ||
2232 | static inline void i_readcount_inc(struct inode *inode) | ||
2233 | { | ||
2234 | return; | ||
2235 | } | ||
2236 | #endif | ||
2218 | extern int do_pipe_flags(int *, int); | 2237 | extern int do_pipe_flags(int *, int); |
2219 | extern struct file *create_read_pipe(struct file *f, int flags); | 2238 | extern struct file *create_read_pipe(struct file *f, int flags); |
2220 | extern struct file *create_write_pipe(int flags); | 2239 | extern struct file *create_write_pipe(int flags); |