ReleaseWriteLock (&dire->lock);
fcache_release(dire);
cm_create (VenusFid dir_fid, const char *name, AFSStoreStatus *store_attr,	   VenusFid *res, AFSFetchStatus *fetch_attr,	   CredCacheEntry* ce){     FCacheEntry *dire;     Result ret;     int error;     error = fcache_get (&dire, dir_fid, ce);     if (error) {	 ret.res = -1;	 ret.error = error;	 return ret;     }     error = fcache_get_data (dire, ce);     if (error) {	 ret.res = -1;	 ret.error = error;	 goto out;     }     if (checkright (dire, AINSERT, ce)) {	  error = create_file (dire, name, store_attr,			       res, fetch_attr, ce);	  if (error) {	      ret.res = -1;	      ret.error = error;	  } else {	      error = adir_creat (dire, name, res->fid);	      if (error) {		  ret.res = -1;		  ret.error = error;	      } else {		  ret.res = 0;	      }	  }     } else {	  ret.res = -1;	  ret.error = EACCES;     }out:     log_operation ("create (%ld,%lu,%lu,%lu) %s\n",	      dir_fid.Cell,	      dir_fid.fid.Volume, dir_fid.fid.Vnode, dir_fid.fid.Unique,	      name);     ReleaseWriteLock (&dire->lock);     return ret;}