fs: provide rcu-walk aware permission i_ops
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
This commit is contained in:
		
					parent
					
						
							
								34286d6662
							
						
					
				
			
			
				commit
				
					
						b74c79e993
					
				
			
		
					 60 changed files with 287 additions and 146 deletions
				
			
		| 
						 | 
				
			
			@ -1550,11 +1550,13 @@ struct file_operations {
 | 
			
		|||
	int (*setlease)(struct file *, long, struct file_lock **);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define IPERM_FLAG_RCU	0x0001
 | 
			
		||||
 | 
			
		||||
struct inode_operations {
 | 
			
		||||
	struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
 | 
			
		||||
	void * (*follow_link) (struct dentry *, struct nameidata *);
 | 
			
		||||
	int (*permission) (struct inode *, int);
 | 
			
		||||
	int (*check_acl)(struct inode *, int);
 | 
			
		||||
	int (*permission) (struct inode *, int, unsigned int);
 | 
			
		||||
	int (*check_acl)(struct inode *, int, unsigned int);
 | 
			
		||||
 | 
			
		||||
	int (*readlink) (struct dentry *, char __user *,int);
 | 
			
		||||
	void (*put_link) (struct dentry *, struct nameidata *, void *);
 | 
			
		||||
| 
						 | 
				
			
			@ -2165,8 +2167,8 @@ extern sector_t bmap(struct inode *, sector_t);
 | 
			
		|||
#endif
 | 
			
		||||
extern int notify_change(struct dentry *, struct iattr *);
 | 
			
		||||
extern int inode_permission(struct inode *, int);
 | 
			
		||||
extern int generic_permission(struct inode *, int,
 | 
			
		||||
		int (*check_acl)(struct inode *, int));
 | 
			
		||||
extern int generic_permission(struct inode *, int, unsigned int,
 | 
			
		||||
		int (*check_acl)(struct inode *, int, unsigned int));
 | 
			
		||||
 | 
			
		||||
static inline bool execute_ok(struct inode *inode)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue