ret.res = 0;
ret.res   = 0; ret.error = 0;
cm_getattr (VenusFid fid,	    AFSFetchStatus *attr,	    VenusFid *realfid,	    CredCacheEntry* ce,	    AccessEntry **ae){     FCacheEntry *entry;     Result ret;     int error;     error = fcache_get (&entry, fid, ce);     if (error) {	 ret.res = -1;	 ret.error = error;	 return ret;     }     error = fcache_get_attr (entry, ce);     if (error) {	 ReleaseWriteLock (&entry->lock);	 ret.res = -1;	 ret.error = error;	 return ret;     }     if (checkright (entry,		     entry->status.FileType == TYPE_FILE ? AREAD : ALIST,		     ce)) {	  *attr = entry->status;	  ret.res = 0;	  entry->flags.attrusedp = TRUE;	  entry->flags.kernelp = TRUE;	  entry->tokens |= XFS_ATTR_R;	  if (ae != NULL)	      *ae = entry->acccache;	  log_operation ("getattr (%ld,%lu,%lu,%lu)\n",		   fid.Cell, fid.fid.Volume, fid.fid.Vnode, fid.fid.Unique);     } else {	  ret.res   = -1;	  ret.error = EACCES;     }     if(entry->flags.mountp)	 *realfid = entry->realfid;     else	 *realfid = fid;     ReleaseWriteLock (&entry->lock);     ret.tokens = entry->tokens;     return ret;}