/* afs_segments.c */
-extern int afs_StoreMini(register struct vcache *avc, struct vrequest *areq);
extern int afs_StoreAllSegments(register struct vcache *avc,
struct vrequest *areq, int sync);
extern int afs_InvalidateAllSegments(struct vcache *avc);
* We're write-locked upon entry.
*/
-int
+static int
afs_StoreMini(register struct vcache *avc, struct vrequest *areq)
{
register struct afs_conn *tc;
struct AFSStoreStatus InStatus;
struct AFSFetchStatus OutStatus;
struct AFSVolSync tsync;
- register afs_int32 code;
+ register afs_int32 code, code2;
register struct rx_call *tcall;
afs_size_t tlen, xlen = 0;
XSTATS_DECLS;
if (code == 0) {
code = EndRXAFS_StoreData(tcall, &OutStatus, &tsync);
}
- code = rx_EndCall(tcall, code);
+ code2 = rx_EndCall(tcall, code);
+ if (code2 && !code)
+ code = code2;
RX_AFS_GLOCK();
XSTATS_END_TIME;
#ifdef AFS_64BIT_CLIENT
(tc, code, &avc->f.fid, areq, AFS_STATS_FS_RPCIDX_STOREDATA,
SHARED_LOCK, NULL));
- if (code == 0) {
+ if (code == 0)
afs_ProcessFS(avc, &OutStatus, areq);
- } else {
- /* blew it away */
- afs_InvalidateAllSegments(avc);
- }
- return code;
+ return code;
} /*afs_StoreMini */
/*