aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorNick Piggin <npiggin@kernel.dk>2011-01-07 01:49:58 -0500
committerNick Piggin <npiggin@kernel.dk>2011-01-07 01:50:29 -0500
commitb74c79e99389cd79b31fcc08f82c24e492e63c7e (patch)
tree763c6b412517306670bc625e90035f2d16bb739f /include/linux/fs.h
parent34286d6662308d82aed891852d04c7c3a2649b16 (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.h10
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
1553struct inode_operations { 1555struct 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
2166extern int notify_change(struct dentry *, struct iattr *); 2168extern int notify_change(struct dentry *, struct iattr *);
2167extern int inode_permission(struct inode *, int); 2169extern int inode_permission(struct inode *, int);
2168extern int generic_permission(struct inode *, int, 2170extern 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
2171static inline bool execute_ok(struct inode *inode) 2173static inline bool execute_ok(struct inode *inode)
2172{ 2174{