else {
else if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { int err = generic_permission(inode, mask, NULL);   if (err == -EACCES) { err = fuse_do_getattr(inode); if (!err) err = generic_permission(inode, mask, NULL); }    return err; } else {
static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd){	struct fuse_conn *fc = get_fuse_conn(inode);	if (current->fsuid != fc->user_id)		return -EACCES;	else {		int mode = inode->i_mode;		if ((mask & MAY_WRITE) && IS_RDONLY(inode) &&                    (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)))                        return -EROFS;		if ((mask & MAY_EXEC) && !S_ISDIR(mode) && !(mode & S_IXUGO))			return -EACCES;		return 0;	}}