(unsigned)entry->inode); goto out;
(unsigned)entry->index); return ret;
truncate_file (FCacheEntry *entry, off_t size, CredCacheEntry *ce){    ConnCacheEntry *conn;    struct rx_call *call;    int ret = 0;    AFSStoreStatus storestatus;    u_int32_t sizefs = sizeof(entry->status.Length);    int fd;    AFSFetchStatus status;    AFSCallBack callback;    AFSVolSync volsync;    assert (CheckLock(&entry->lock) == -1);    conn = findconn (entry, ce);    if (conn == NULL)	return ENETDOWN;    fd = fcache_open_file (entry, O_RDWR | O_CREAT, 0);    if (fd < 0) {	ret = errno;	arla_warn (ADEBFCACHE, ret, "open fache file %u",		   (unsigned)entry->inode);	goto out;    }    if(ftruncate (fd, size) < 0) {	ret = errno;	arla_warn (ADEBFCACHE, ret, "ftruncate %ld", (long)size);	close (fd);	goto out;    }        close (fd);    if (entry->flags.datap) {	assert (usedbytes >= entry->status.Length);	usedbytes -= entry->status.Length;    }    usedbytes += size;    entry->status.Length = size;    call = rx_NewCall (conn->connection);    if (call == NULL) {	arla_warnx (ADEBMISC, "rx_NewCall failed");	ret = ENOMEM;	goto out;    }    storestatus.Mask = 0;    ret = StartRXAFS_StoreData (call,				&entry->fid.fid, 				&storestatus,				0, 0, entry->status.Length);    if(ret) {	arla_warn (ADEBFCACHE, ret, "store-data");	rx_EndCall(call, 0);	goto out;    }    sizefs = htonl (sizefs);    if (rx_Write (call, &sizefs, sizeof(sizefs)) != sizeof(sizefs)) {	ret = rx_Error(call);	arla_warn (ADEBFCACHE, ret, "writing length");	rx_EndCall(call, 0);	goto out;    }    if (rx_Write (call, 0, 0) != 0) {	ret = rx_Error(call);	arla_warn (ADEBFCACHE, ret, "writing length");	rx_EndCall(call, 0);	goto out;    }    ret = rx_EndCall (call, EndRXAFS_StoreData (call,						&status,						&callback,						&volsync));    if (ret) {	arla_warn (ADEBFCACHE, ret, "rx_EndCall");	goto out;    }    update_entry (entry, &status, &callback, &volsync,		  rx_HostOf(rx_PeerOf(conn->connection)),		  ce->cred);out:    conn_free(conn);    return ret;}