diff options
author | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:49:58 -0500 |
---|---|---|
committer | Nick Piggin <npiggin@kernel.dk> | 2011-01-07 01:50:29 -0500 |
commit | b74c79e99389cd79b31fcc08f82c24e492e63c7e (patch) | |
tree | 763c6b412517306670bc625e90035f2d16bb739f /include/linux/fs.h | |
parent | 34286d6662308d82aed891852d04c7c3a2649b16 (diff) |
fs: provide rcu-walk aware permission i_ops
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index a04aa96acb71..d5a4d42f655b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1550,11 +1550,13 @@ struct file_operations { | |||
1550 | int (*setlease)(struct file *, long, struct file_lock **); | 1550 | int (*setlease)(struct file *, long, struct file_lock **); |
1551 | }; | 1551 | }; |
1552 | 1552 | ||
1553 | #define IPERM_FLAG_RCU 0x0001 | ||
1554 | |||
1553 | struct inode_operations { | 1555 | struct inode_operations { |
1554 | struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *); | 1556 | struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *); |
1555 | void * (*follow_link) (struct dentry *, struct nameidata *); | 1557 | void * (*follow_link) (struct dentry *, struct nameidata *); |
1556 | int (*permission) (struct inode *, int); | 1558 | int (*permission) (struct inode *, int, unsigned int); |
1557 | int (*check_acl)(struct inode *, int); | 1559 | int (*check_acl)(struct inode *, int, unsigned int); |
1558 | 1560 | ||
1559 | int (*readlink) (struct dentry *, char __user *,int); | 1561 | int (*readlink) (struct dentry *, char __user *,int); |
1560 | void (*put_link) (struct dentry *, struct nameidata *, void *); | 1562 | void (*put_link) (struct dentry *, struct nameidata *, void *); |
@@ -2165,8 +2167,8 @@ extern sector_t bmap(struct inode *, sector_t); | |||
2165 | #endif | 2167 | #endif |
2166 | extern int notify_change(struct dentry *, struct iattr *); | 2168 | extern int notify_change(struct dentry *, struct iattr *); |
2167 | extern int inode_permission(struct inode *, int); | 2169 | extern int inode_permission(struct inode *, int); |
2168 | extern int generic_permission(struct inode *, int, | 2170 | extern int generic_permission(struct inode *, int, unsigned int, |
2169 | int (*check_acl)(struct inode *, int)); | 2171 | int (*check_acl)(struct inode *, int, unsigned int)); |
2170 | 2172 | ||
2171 | static inline bool execute_ok(struct inode *inode) | 2173 | static inline bool execute_ok(struct inode *inode) |
2172 | { | 2174 | { |