generic_permission — check for access rights on a Posix-like filesystem
int generic_permission ( | struct inode * inode, |
int mask, | |
unsigned int flags, | |
int (*check_acl)
( struct inode *inode, int mask, unsigned int flags) ) ; |
inode
inode to check access rights for
mask
right to check for (MAY_READ
, MAY_WRITE
, MAY_EXEC
)
flags
IPERM_FLAG_ flags.
check_acl
optional callback to check for Posix ACLs
Used to check for read/write/execute permissions on a file. We use “fsuid” for this, letting us set arbitrary permissions for filesystem access without changing the “normal” uids which are used for other things.
generic_permission is rcu-walk aware. It returns -ECHILD in case an rcu-walk request cannot be satisfied (eg. requires blocking or too much complexity). It would then be called again in ref-walk mode.