generic_permission — check for access rights on a Posix-like filesystem
| int generic_permission ( | struct inode * inode, | 
| int mask ); | 
inodeinode to check access rights for
mask
     right to check for (MAY_READ, MAY_WRITE, MAY_EXEC, ...)
    
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.