Don't throw data away in afs_StoreMini
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Fri, 22 Jan 2010 20:11:21 +0000 (20:11 +0000)
committerDerrick Brashear <shadow|account-1000005@unknown>
Fri, 22 Jan 2010 22:48:48 +0000 (14:48 -0800)
commitb1eb6a7a3f80500f0187cc6a1dd2013e1a5e154a
tree395c5ea1997dfc08810187be4eb3f689f51a9fac
parent637e1eac97c2e9c0f0354cfff1a83deddb4ae24f
Don't throw data away in afs_StoreMini

afs_StoreMini had some interesting error handling. Instead of returning
the error code from StoreData, it would return the error from EndCall,
potentially masking the StoreData error. When it encountered an error
it would discard all of the cached data.

StoreMini's only caller is afs_StoreAllSegments. If StoreAllSegments is
called from DoPartialWrite, then it squashes the error code. This
combination could lead to the user's data being disposed of, without an
error being reported.

Fix all of this by not invalidating segments in StoreMini. Make
StoreMini static to make it clear its only used by StoreAllSegments, and
fix the error handling in StoreMini so that StoreData errors always take
priority.

Change-Id: I41f0c753655fac343485d2a473ad70b6ae96bb78
Reviewed-on: http://gerrit.openafs.org/1147
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/afs/afs_prototypes.h
src/afs/afs_segments.c