else { 
else if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { int err = generic_permission(inode, mask, NULL);  /* If permission is denied, try to refresh file attributes.  This is also needed, because the root node will at first have no permissions */ if (err == -EACCES) { err = fuse_do_getattr(inode); if (!err) err = generic_permission(inode, mask, NULL); }  /* FIXME: Need some mechanism to revoke permissions: currently if the filesystem suddenly changes the file mode, we will not be informed about it, and continue to allow access to the file/directory.  This is actually not so grave, since the user can simply keep access to the file/directory anyway by keeping it open... */  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;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1e9a4ed9396e9c31139721b639550ffb1df17065/dir.c/clean/fs/fuse/dir.c