aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r--include/linux/fs.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 13df14e2c42..2f5a71d6d76 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
2218static inline void i_readcount_dec(struct inode *inode)
2219{
2220 BUG_ON(!atomic_read(&inode->i_readcount));
2221 atomic_dec(&inode->i_readcount);
2222}
2223static inline void i_readcount_inc(struct inode *inode)
2224{
2225 atomic_inc(&inode->i_readcount);
2226}
2227#else
2228static inline void i_readcount_dec(struct inode *inode)
2229{
2230 return;
2231}
2232static inline void i_readcount_inc(struct inode *inode)
2233{
2234 return;
2235}
2236#endif
2218extern int do_pipe_flags(int *, int); 2237extern int do_pipe_flags(int *, int);
2219extern struct file *create_read_pipe(struct file *f, int flags); 2238extern struct file *create_read_pipe(struct file *f, int flags);
2220extern struct file *create_write_pipe(int flags); 2239extern struct file *create_write_pipe(int flags);